Расположение памяти структуры C++ со статическими многомерными массивами ⇐ C++
-
Anonymous
Расположение памяти структуры C++ со статическими многомерными массивами
У меня есть struct C++, содержащий целые числа и статические массивы, например:
struct sMyStruct { беззнаковый интервал uiVal; интервал iVal1; интервал iVal2 = 0; float afVals[NUM_VALUES]; беззнаковый символ auiVals[NUM_VALUES]; float aafVals[ NUM_VALUES ][ NUM_VALUES_2 ]; }; где NUM_VALUES и NUM_VALUES_2 равны #defined во время компиляции.
Можно ли мне предположить, что, если допустить некоторое заполнение между элементами в соответствии с границами выравнивания, каждый элемент в этой структуре, включая массивы, будет последовательно (смежно) располагаться в памяти?
Я передаю эту структуру приложению LabVIEW, и только три целых числа и первый массив (afVals) доставляются благополучно. Последние два массива теряются, и я не знаю почему.
У меня есть struct C++, содержащий целые числа и статические массивы, например:
struct sMyStruct { беззнаковый интервал uiVal; интервал iVal1; интервал iVal2 = 0; float afVals[NUM_VALUES]; беззнаковый символ auiVals[NUM_VALUES]; float aafVals[ NUM_VALUES ][ NUM_VALUES_2 ]; }; где NUM_VALUES и NUM_VALUES_2 равны #defined во время компиляции.
Можно ли мне предположить, что, если допустить некоторое заполнение между элементами в соответствии с границами выравнивания, каждый элемент в этой структуре, включая массивы, будет последовательно (смежно) располагаться в памяти?
Я передаю эту структуру приложению LabVIEW, и только три целых числа и первый массив (afVals) доставляются благополучно. Последние два массива теряются, и я не знаю почему.
Мобильная версия