#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int getMem(char* p)//错误
{
p = (char*)malloc(100 * sizeof(char));
if (p == NULL)
{
return -1;
}
strcpy(p, "abchdgs");
printf("p = %s\n", p);
return 0;
}
int getMem2(char** p)//正确
{
if (p == NULL)
{
return -1;
}
char* tmp = (char*)malloc(sizeof(char) * 100);
if (tmp == NULL)
{
return -2;
}
strcpy(tmp, "fffffff");
*p = tmp;
return 0;
}
int main()
{
char* p = NULL;
int ret = 0;
ret = getMem2(&p);
if (ret != 0)
{
printf("getMem() error:%d\n", ret);
return ret;
}
printf("p = %s\n", p);
if (p != NULL)
{
free(p);
p = NULL;
}
printf("\n");
system("pause");
return 0;
}
C语言二级指针做参数输出特性
最新推荐文章于 2023-04-08 23:27:16 发布