请教一个指针问题

walker1222 2013-02-05 12:42:30
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调用,就完全正确。
本来以为对指针了解算不错的,结果悲剧了。。第二次遇到这种问题,仍然是不明白。。。求指教。

...全文
153 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
walker1222 2013-02-05
  • 打赏
  • 举报
回复
引用 1 楼 dubiousway 的回复:
int stat(const char *path,struct stat *buf) 这个函数内部不会申请 struct stat 空间。 你要是只传递一个struct stat *pbuf;指针进去,这个指针并没有指向有效空间,在函数内部直接操作赋值这个指针就会出问题。 你可以 先 pbuf= new struct stat; 或者 pbuf=(str……
非常有道理,恍然大悟,多谢了。!!!
dubiousway 2013-02-05
  • 打赏
  • 举报
回复
int stat(const char *path,struct stat *buf) 这个函数内部不会申请 struct stat 空间。 你要是只传递一个struct stat *pbuf;指针进去,这个指针并没有指向有效空间,在函数内部直接操作赋值这个指针就会出问题。 你可以 先 pbuf= new struct stat; 或者 pbuf=(struct stat*)malloc(sizeof(struct stat));

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧