Этот код содержит UB!
Как упоминалось в комментариях, потому что код, который вы написали, запрашивает значение, на которое указывает каждый указатель в неинициализированной структуре Triangle t1
, сгенерированном компилятором код, который не определен стандарт. Это известно как НЕОПРЕДЕЛЕННОЕ ПОВЕДЕНИЕ , потому что нет никакого разумного значения, чтобы дать указатели по умолчанию. Я полагаю, что при использовании конфигурации отладки компилятор по умолчанию инициализирует указанные указатели значением 0, что является недоступным адресом.
Чтобы исправить эту программу, просто инициализируйте значение t1, например что переменные-члены действительно указывают на действительные значения Point
. Они могут быть размещены в стеке или куче, но они должны быть выделены.
Еще одна вещь, на которую стоит обратить внимание, это то, что вы, похоже, не слишком задумывались над своим вопросом. В будущем я бы попробовал больше протестировать проблемы, которые у вас есть, попытаться решить их самостоятельно, и, в крайнем случае, задать здесь вопрос о переполнении стека. Задавая вопрос, предоставьте как можно больше информации, особенно информацию, которую вы нашли, пытаясь решить проблему самостоятельно. Спасибо;)