#c #assembly #multidimensional-array #x86 #x86-64
#c #сборка #многомерный массив #x86 #x86-64
Вопрос:
Я пытаюсь получить доступ к моему 2D массиву символов в asm, но не уверен, как к нему получить доступ в памяти.
По сути, 2d-массив имеет высоту 3 в y и длину long (изменения в программе), и у меня есть цикл for, в котором я пытаюсь перейти по элементам в x для y = 0.
Это определено в C как char array[3][MAXCHARS];
Затем позже по элементам в x, когда y = 1. Я не совсем уверен, как это работает, сохраняется ли второе значение y массива сразу после первой строки x в памяти?
Комментарии:
1. Пожалуйста, добавьте диаграмму того, что вы пытаетесь спросить. Сейчас это не очень понятно.
2. «хранится ли второе значение y массива сразу после первой строки x в памяти?» Это зависит от вас. Или откуда берется этот массив (кто его создает)?
3. @Michael Это определено в верхней части массива символов программы [3] [MAXCHARS]; так что мне нужно все, что указано по умолчанию в cpp
4. ОК. Ну, если это C, то я считаю, что стандарт ISO предусматривает, что все элементы будут распределены последовательно. То есть первый элемент строки N будет расположен сразу после последнего элемента строки N-1.
5. Fortran хранит массивы в порядке следования столбцов, а не в порядке следования строк, как C / C , поэтому очень важно, как вы определили свой массив.