Я написал этот код, потому что у меня похожая проблема в большой программе, которую я пишу. Насколько я знаю, проблема та же, поэтому я сделал небольшой пример.
#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 (предварительный выпуск), он компилируется, однако, когда я его выполняю, я получаю только «Инициализация работает». до того, как получить segfault.
Что я делаю не так? Это мой код или мой компилятор GCC?