Maison >développement back-end >Tutoriel C#.Net >Quel est l'ordre dans lequel les tableaux bidimensionnels sont stockés en mémoire en langage C ?
En langage C, l'ordre de stockage des tableaux bidimensionnels en mémoire se fait par ligne. Le tableau bidimensionnel A[m][n] est un tableau bidimensionnel avec m lignes et n colonnes. a[p][q] est le premier élément de A, c'est-à-dire que les indices de ligne du tableau bidimensionnel vont de p à [m+p] et les indices de colonne vont de q à [n+q].
Dans le langage C, les éléments d'un tableau bidimensionnel sont stockés ligne par ligne en mémoire.
Tableau bidimensionnel A[m][n], qui est un tableau bidimensionnel avec m lignes et n colonnes. Soit a[p][q] le premier élément de A, c'est-à-dire que les indices de ligne du tableau bidimensionnel vont de p à m+p et les indices de colonne vont de q à n+q lorsqu'ils sont stockés dans. "ordre majeur des lignes", alors L'adresse de l'élément a[i][j] est calculée comme :
LOC(a[i][j]) = LOC(a[p][q]) + ((i − p) * n + (j − q)) * t;
Lorsqu'elle est stockée dans "l'ordre majeur des colonnes", l'adresse est calculée comme :
LOC(a[i][j]) = LOC(a[p][q]) + ((j − q) * m + (i − p)) * t;
Le nombre minimum de cellules requis pour stocker le tableau est de (m-p+1) * (n-q+1) * t
octets.
Informations détaillées :
Tableau bidimensionnel dynamique C++ :
Prenons le plastique comme exemple, row est le nombre de lignes, col est le nombre de colonnes
int **data;
//Pointeur de stockage d'un tableau bidimensionnel, pointeur vers pointeur. L'adresse de
date=x[0][0]
sera ainsi mieux indiquée. Parce que le résultat de sizeof(date)
est 4, il est impossible de stocker un tableau bidimensionnel.
//以下实现如何申请内存 data = new int *[row]; for (int k = 0; k < row; k++) { data[k] = new int[col]; }rrree
Tutoriel recommandé : "c tutoriel vidéo"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!