memória malloc para um ponteiro para ponteiro
Eu me deparei com este problema ao usar o ponteiro para apontar para um char:
<code>void setmemory(char** p, int num) { *p=(char*)malloc(num); } void test(void) { char* str=NULL; setmemory(&str,100); strcpy(str,"hello"); printf(str); } int main() { test(); return 0; } </code>
O código acima está correto, mas não consigo entender por que usar um ponteiro para um ponteiro char ** p aqui? Por que apenas usando um ponteiro para um char em vez disso? então eu mudei este trecho para baixo e achei que não estava funcionando, alguém pode me dizer por quê? obrigado!
<code>void setmemory(char* p, int num) { p=(char*)malloc(num); } void test(void) { char* str=NULL; setmemory(str,100); strcpy(str,"hello"); printf(str); } int main() { test(); return 0; } </code>