私が書いているより大きなプログラムで同様の問題を抱えているので、このコードを書きました。問題は同じだとわかっているので、この小さな例を作成しました。
#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コンパイラ)でコンパイルすると、正常にコンパイルおよび実行されます。しかし、GCC 4.6.0 20110513(プレリリース)を使用するとコンパイルされますが、実行すると「初期化作業」を通過するだけです。セグメンテーション違反を取得する前に。
私は何が間違っているのですか?それは私のコードですか、それとも私のGCCコンパイラですか?