#include <stdio.h>
typedef struct test{
int app;
}test;
int main()
{
int fi;
FILE* fp;
test* banned;
banned->app=2;
fi=chdir("/home");
printf("%d", fi);
return 0;
}
这是一个更大计划的一部分。我需要能够从读入文件导航到目录,并将信息放入结构中。但是,每当该程序编译时都会出现段错误。在 gcc 编译上运行 gdb
#0 0x08048421 in main ()
这是编译器的问题还是代码中缺少启用此功能的内容?
注意:这已经解决了我是一个彻头彻尾的白痴,并试图从我刚刚在脑海中构想的帽子中拉出一只兔子......或者说我没有将我的引用与实际值联系起来,所以编译器抛出了一个合身。解决方案是创建一个“真正的结构”,然后通过 reference=&normalpointer 将引用指针指向它,感谢您的帮助
尽管 id 喜欢在没有引用的情况下使用结构,但我需要将其传递给不同的函数。但是提到的解决方案比我做的要好
最佳答案
您正在写下一个未初始化的指针,因为您已将 banned
定义为指向 test
类型结构的指针,而不是 test< 类型的实例
。将 test* banned
更改为 test banned
。然后,您将使用 .
而不是 ->
来访问 banned
的成员,例如banned.app=2
。
关于c - 在 c 中使用箭头运算符运行 chdir 然后打印的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121207/