memoria malloc a puntero a puntero
He encontrado este problema cuando uso el puntero para apuntar a un 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>
El código anterior es correcto, pero no puedo entender por qué usar un puntero a un carácter de puntero ** p aquí? ¿Por qué solo usar un puntero a un char en su lugar? Así que cambié este fragmento por debajo y lo encontré no funcionó, ¿puede alguien decirme por qué? ¡Gracias!
<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>