无法把指针变量本身传递给一个函数的解决方法
//1:传递指针的方法无效,结果导致内存泄露 void GetMemory(char *p,int num) { p=(char*)malloc(num*sizeof(char)); } int main() { char *str=NULL; GetMemory(str,10); strcpy(str,"hello"); free(str);//free 并没有起作用,内存泄露 return 0; } //2:return 返回分配内存地址 char* GetMemory(char *p,int num) { p=(char*)malloc(num*sizeof(char) return p; } int main() { char* str=NULL; str=GetMemory(str,10); strcpy(str,"hello"); free(str); return 0; } //3:二级指针的使用,将指针地址传递给函数,改变指针内容(即分配内存首地址) void GetMemory(char **p,int num) { *p=(char*)malloc(num*sizeof(char)); return p; } int main() { char *str=NULL; GetMemory(&str,10); strcppy(str,"hello"); free(str); return 0; }