我写了这段代码,因为我在我正在编写的一个更大的程序中遇到了类似的问题。据我所知,问题是一样的,所以我做了这个小例子。
#include <stdio.h>
typedef struct
{
int x;
char * val;
}my_struct;
int main()
{
my_struct me = {4, " "};
puts("Initialization works.");
me.val[0] = 'a';
puts("Assignment works.");
puts(me.val);
puts("Output works.");
return 0;
}
当使用 tcc (Tiny C Compiler) 编译时,它编译并执行得很好。但是使用 GCC 4.6.0 20110513(预发布)它可以编译,但是,当我执行它时,我只能通过“初始化工作”。在出现段错误之前。
我究竟做错了什么?是我的代码还是我的 GCC 编译器?