带有箭头操作符的Segfault在c中运行chdir然后打印

时间:2014-04-16 22:21:30

标签: c pointers segmentation-fault operator-keyword

#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 ()

这是编译器的问题,还是代码中缺少启用此功能的内容?

注意:这已经解决了我是一个完整的白痴,并试图从我刚刚在我头脑中的一个帽子拉出一个兔子...也就是说我没有把我的引用绑定到一个实际值,所以编译器扔了一个适合。解决方案是创建一个真正的结构&#34;然后让引用指针指向通过reference =&amp; normalpointer感谢帮助

尽管id喜欢在没有引用的情况下使用struct,但我需要将它传递给不同的函数。但是提到的解决方案比我正在做的更好

1 个答案:

答案 0 :(得分:2)

您正在写下未初始化的指针,因为您已将banned定义为指向类型为test的结构的指针,而不是类型为test的实例。将test* banned更改为test banned。然后,您可以使用.而不是->来访问banned的成员,例如banned.app=2