//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;
}