У меня есть C-код, в котором у меня есть объявление структуры, в котором объявлен массив int [576].
По какой-то причине мне пришлось удалить этот массив из структуры, поэтому я заменил этот массив указателем как int * ptr; объявил некоторый глобальный массив того же типа где-то еще в коде и инициализировал этот указатель, назначив глобальный массив этому указателю. Поэтому мне не нужно было менять способ доступа к этому массиву из других частей моего кода.
Но он работает нормально / дает желаемый результат, когда у меня есть массив, объявленный в структуре, но он дает нежелательный вывод, когда я объявляю его как указатель в структуре и назначаю глобальный массив этому указателю, как часть инициализация указателя.
Весь этот код выполняется на MS-VC 6.0 / Windows setup / Intel-x86.
Я попробовал следующие вещи:
Предполагается, что структура дополнения / выравнивания, но не может получить какие-либо провода? Если вообще структура может быть причиной, как я могу приступить к сужению и подтверждению?
Я убедился, что в обоих случаях массив инициализируется некоторыми значениями по умолчанию, скажем, 0 до его первого использования, и он не используется до инициализации.
Я попытался использовать глобальный массив, а также память на основе malloc для этого вновь объявленного массива. Тот же результат, нежелательный вывод.
Как я могу сосредоточиться на проблеме? Любые указатели будут полезны.