Pessoal, estou tendo problemas em relação a quantidade de memória ao tentar usar um ponteiro que é um vetor de char, eu estava passando o vetor por parametro e parece que isso foi consumindo a memória pois eu passava ele para 3 funções(uma chamando dentro da outra), para tentar resolver o problema pensei em passar uma referencia do ponteiro para usar a mesma variável nas 3 funções, mas estou tendo problemas para popular o vetor e o sistema imprime apenas um caracter.
O código que estou usando apenas para aprendizado é esse:
void setup()
{
Serial.begin(9600);
}
void loop()
{
criaVariavel();
delay(10000);
}
void criaVariavel() {
char* vetor;
dadosVetor(&vetor);
Serial.println(vetor);
delete[] vetor;
free(vetor);
}
void dadosVetor(char** vetor2) {
*vetor2 = new char[10];
for(int i=0; i<9; i++) {
*vetor2[i] = 'a';
}
*vetor2[9] = '\0';
}
No println ele mostra apenas o 'a' em vez de 'aaaaaaaaa', sera que é a forma que estou fazendo para setar o valor na posição dentro do for ?
Dentro da dadosVetor(), tem como repassar por referencia o mesmo ponteiro para outra função?
Em relação ao uso de memória, esta correta a forma como fiz para liberar a variavel usando delete[] e free() ?