示例:
// 将申请到的内存赋给一级指针
void GetValue1(int *a)
{
int *b = malloc(sizeof(int));
*b = 2;
a = b; // 该接口返回后,*a就不是2了,失效了。正确写法可以写成*a = *b;
}
// 将申请的内存通过返回值int *方式返给上级调用处
int *GetValue2(void)
{
int *b = malloc(sizeof(int));
*b = 2;
return b;
}
int main()
{
int a = 1;
GetValue1(&a);
printf("a=%d\n", a); // 输出结果还是1,而不是2
int *b = GetValue2();
a = *b;
printf("a=%d\n", a); // 输出结果是2
return 0;
}
yo peace!
网友评论