测试ok,代码如下:
/********************************************
* 功能:malloc申请空间函数的两种返回方法
* 作者:lml 时间:2020年4月16日 12:25
******************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void GetMemory(char **p)//方法1
{
//传参的方法必须是二级指针,把p传过来是地址,malloc也是得到一个地址
//所以用一个地址去保存一个地址,所以传进来的必须是二级指针
//如果传进来的不是二级指针,会出现段错误
*p = (char *)malloc(100);
}
/*
char *GetMemory()//方法2
{
//这种方法返回一个地址,在主函数用指针接就行
char *p=NULL;
p = (char *)malloc(100);
return p;
}*/
void main(void)
{
char *str = NULL;
GetMemory(&str);
// str = GetMemory();
strcpy(str, "hello world");
printf("%s\n",str);
free(str);
str = NULL;
}
结束,快去试试吧!