我正在尝试访问最里面结构中的元素asd7,这是我的代码:
#include <stdio.h>
int main()
{
struct asd
{
int asd;
struct asd1
{
int asd1;
struct asd6
{
int asd7;
}asd6;
}asd1;
}asd;
int asd10;
int asd11;
struct asd *ptr1;
struct asd1 *ptr2;
struct asd6 *ptr3;
asd.asd1.asd6.asd7=10;
printf("%d\n",asd.asd1.asd6.asd7);
}
代码正在编译,但我无法运行它 - 我遇到了分段错误。任何帮助都会很棒。
由于
输出结果为:
10
Exited: ExitFailure 3
答案 0 :(得分:5)
您的代码没有任何问题,最后一个简单的return 0;
无法修复: - )
不
pax> cat qq.c ; gcc -o qq qq.c ; ./qq ; echo rc=$?
#include <stdio.h>
int main (void) {
struct asd {
int asd;
struct asd1 {
int asd1;
struct asd6 {
int asd7;
} asd6;
} asd1;
} asd;
asd.asd1.asd6.asd7=10;
printf("%d\n",asd.asd1.asd6.asd7);
//return 0;
}
10
rc=3
使用:
pax> cat qq.c ; gcc -o qq qq.c ; ./qq ; echo rc=$?
#include <stdio.h>
int main (void) {
struct asd {
int asd;
struct asd1 {
int asd1;
struct asd6 {
int asd7;
} asd6;
} asd1;
} asd;
asd.asd1.asd6.asd7=10;
printf("%d\n",asd.asd1.asd6.asd7);
return 0;
}
10
rc=0
另一种方法是切换到C99编译器(或模式)。 C99标准部分(转述)陈述:
如果main函数的返回类型是与int兼容的类型,则从初始调用返回main函数等效于调用exit函数,并将main函数返回的值作为其参数:到达终止的 main函数返回值0。
(我的斜体)。