读书人

请问一个指针有关问题

发布时间: 2013-02-20 12:23:22 作者: rapoo

请教一个指针问题
stat 函数是获取文件信息的函数。原型是

int stat(const char *path,struct stat *buf)
path 是文件的路径, buf是返回的一个结构体文件信息。

我调用的方法是:
1.
struct stat *pbuf;
stat("/root",pbuf);
2.
struct stat buf
stat("/root",&buf);


用方法1调用后,pbuf里面的信息会有错误,用方法2调用,就完全正确。
本来以为对指针了解算不错的,结果悲剧了。。第二次遇到这种问题,仍然是不明白。。。求指教。


[解决办法]
int stat(const char *path,struct stat *buf)

这个函数内部不会申请 struct stat 空间。
你要是只传递一个struct stat *pbuf;指针进去,这个指针并没有指向有效空间,在函数内部直接操作赋值这个指针就会出问题。

你可以 先 pbuf= new struct stat;
或者 pbuf=(struct stat*)malloc(sizeof(struct stat));

读书人网 >C语言

热点推荐