Я написал этот код, потому что у меня возникла аналогичная проблема в более крупной программе, которую я пишу. Насколько я знаю, проблема та же самая, поэтому я сделал этот небольшой пример.
#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?