A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 丁远帅 中级黑马   /  2015-6-8 23:00  /  701 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

void getHeap(int *p){
p=(int *)malloc(sizeof(int)*10);
}
int *p=NULL;
getHeap(p);
p[0]=0;
printf("%d\n",p[0]);
为什么运行会报错呢?嗨指针问题真让人头疼啊:Q

1 个回复

倒序浏览
这里下面的p一直是null,更加不可能写作p[0]了,
因为这样调用函数 其实还是值传递 只不过这个值是个地址
如果想用地址传递 那么函数声明需要是
void getHeap(int **p)
{
*p=(int *)malloc(sizeof(int)*10);
}
下面的调用函数应该是
getHeap(&p);
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马