首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

指针作为函数参数的有关问题

2012-02-06 
指针作为函数参数的问题。c代码如下:main(){.........char *pBuftest(pBuf)//从test得到新值......}void

指针作为函数参数的问题。
c代码如下:
main()
{
.........
char *pBuf;
test(pBuf);//从test得到新值
......
}
void test(char *buf)
{
  //要改变buf指向的值
}

但是我运行程序后却报错:Segmentation fault

请大家帮帮忙看看。

[解决办法]
char *pBuf;这个没有初始化,pBuf不一定指到什么地方去了,一访问出错太正常了。将pBuf指向一个字符数组或者用malloc分配一块内存。
[解决办法]
如果要在函数中对指针动态分配内存要用指向指针的指针

因为函数体内操作的是指针的副本(_buf),其本身pBuf并没有被修改
[解决办法]

C/C++ code
char * pBuf = NULL;test(&pBuf);void test(char **p){    *p = (char *)malloc(sizeof(char) * 32);}
[解决办法]
一句话,指针做形参或右值得一定得初始化。
[解决办法]
char*不会用的话,直接定义数组用吧,一样的。
char[1024] pBuf;

热点排行