Я думаю, что ваша проблема в том, что вы «пытаетесь получить указатель в структурной точке на массив структур». Чтобы объявить указатель на массив, вам нужен немного другой синтаксис: Mesh (*meshptr)[array_size];
. В настоящее время ваша структура стоит meshptr
- это указатель на один объект Mesh
, а не массив. Попытка использовать этот указатель как массив вызовет проблемы, так как вы будете иметь прямой доступ к памяти после указателя. Это может объяснить, почему перемещение указателя на конец структуры данных, кажется, работает. Когда вы делаете это, вы повреждаете память, следующую за структурой, вместо того, чтобы разрушать элементы структуры, следующие за указателем. Скорее всего, ваш код повредил одно из последних трех полей структуры, и это повреждение вызвало ошибку, которую вы видите. Перемещение указателя в конец может привести к остановке ошибки, но это не решает проблему (вы все еще повреждаете память, что может привести к неожиданным последствиям).
Это просто предположение, основанное на глупых вещах, которые я делал в прошлом. Не имея больше вашего кода, невозможно сказать наверняка.