您的位置:首页 > 编程语言 > C语言/C++

C指针传递,指向指针的指针。

2016-06-05 21:43 316 查看
以下错误的方式,q只是形参,虽只向malloc()分配的内存,但p并不指向内存

#include<stdio.h>
#include<malloc.h>
void f(int *q)
{
q=(int*)malloc(sizeof(int));
*q=4;
}
void main()
{
int *p=NULL;
f(p);
printf("%d\n",*p);
}


以下是正确的方式,传递指针地址,用指向指针的指针作为形参,就可以在函数里改变p指针

#include<stdio.h>
#include<malloc.h>
void f(int **q)
{
*q=(int*)malloc(sizeof(int));
**q=4;
}
void main()
{
int *p=NULL;
f(&p);
printf("%d\n",*p);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  指针 c语言