Редактировать: Первый комментатор сообщает, что в коде нет явных ошибок, поэтому я пересмотрел пост с большим количеством кода. Извиняюсь за длину. Снова возникает ошибка, когда я ссылаюсь на строковые переменные в подструктуре ... обратите внимание, что если я удаляю первую запись, которая позже вызывает segfault в segfaults из-за записи в другую строку var. Обратите внимание, что в этом сценарии другие элементы подструктуры (например, double Volume
) правильно записаны без ошибок времени выполнения.
Редактировать 2:
По предложению Дейва я запустил Valgrind на исполняемом файле с поддержкой отладки. То, что это выплюнуло было:
Редактировать 3:
Видимо у меня была версия, которая malloc вместо прямого массива внутри инициализатора. Удаление это решило проблему. Я воздаю должное Дэйву за это, так как valgrind помогает мне исправить всевозможные утечки / проблемы с памятью! Спасибо за помощь, хотя ....
Строка 36 - та, на которой она не работает (прокомментировано ниже)
- код удален для предотвращения распространения
Я объявляю экземпляр моей структуры верхнего уровня (sim_t) в main. Программа segfaults, как только я пытаюсь записать в строки внутри подструктуры. Записывает в другие переменные субструктуры, например, double, ints и т. д. выполнялись правильно, когда я запускал программу в GDB.
Кажется, что-то очевидно, что я здесь скучаю. Кто-нибудь видит проблему с этим кодом?
(И для записи, пожалуйста, не комментируйте заглавные буквы, я следую стандарту MSDN по именованию.)