当前位置: 代码迷 >> C语言 >> 请问一个指针有关问题
  详细解决方案

请问一个指针有关问题

热度:9414   发布时间:2013-02-26 00:00:00.0
请教一个指针问题
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));
  相关解决方案