Salve!
Estou tentando escrever em uma string (ponteiro alocado dinamicamente) através de uma função alimentada por um ponteiro
Codigo de exemplo:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void teste (char *str)
{
str = (char*)malloc(sizeof(char)*(strlen("teste")));
strcpy(str, "teste");
printf("%s", str);
}
int main()
{
char *str1 = NULL;
teste(str1);
printf("|%s", str1);
return 0;
}
A intenção é que a saída seja algo do tipo:
teste|teste
porém o resultado é:
teste|(null)
Acredito que por estar enviando como referência o str1 ele deveria ser alterado pela função, e portanto permanecer como o mesmo valor de str (que aponta para ele), porém isso não acontece.
Como deveria proceder para conseguir o resultado desejado?
Agradeço!