Aloque memória e salve a string em c
Eu queria saber por que o código a seguir não está funcionando
int main(int argc, char **argv)
{
char *test = (char*) malloc(12*sizeof(char));
test = "testingonly";
free(test);
}
Depois de pensar nisso, minha suposição era que primeiro eu alocava espaço para 12 caracteres na memória, mas a atribuição na próxima linha cria uma matriz de caracteres na pilha e o endereço de memória é passado para teste. Portanto, free () tenta liberar espaço na pilha, o que não é permitido. Isso está correto?
Então, qual seria a abordagem correta para salvar uma string na pilha? O seguinte é uma maneira comum?
int main(int argc, char **argv)
{
char *test = (char*) malloc(12*sizeof(char));
strcpy(test, "testingonly");
free(test);
}