读书人

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

发布时间: 2012-02-06 15:52:44 作者: rapoo

指针作为函数参数的问题。
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;

读书人网 >C语言

热点推荐