运行以下C语言程序程序崩溃,请问为什么?
3个回答
2015-04-21
展开全部
按值传递的参数是不能修改的,简单说就是你在getmemory里修改的p,其实并不会影响到main函数里的str变量,所以你的str一直都是NULL
getmemory你可以做成返回值来返回这个指针呀,例如
char* getmemory()
{
....
}
int main()
{
...
char *str = NULL;
str = getmemory();
}
getmemory你可以做成返回值来返回这个指针呀,例如
char* getmemory()
{
....
}
int main()
{
...
char *str = NULL;
str = getmemory();
}
展开全部
函数传递的时候传的是参数的拷贝。
调用getmemory时不会改变str指针,它还是指向null,在free的时候会出错。
调用getmemory时不会改变str指针,它还是指向null,在free的时候会出错。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
char *p分配的内存是在函数getmemory内部 其值无法传回主函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询