¿Cómo se generan las direcciones en matrices en C, digamos cómo a [x] [y] llega a un valor particular, sé que no es una pregunta tan grande, pero está a punto de de hecho comienza a codificar.matriz 2-D en C, generación de dirección
Respuesta
Bueno, esto se hace dependiendo de su tipo de datos de la matriz que haya considerado.
Supongamos que para una matriz de enteros, cada valor tiene 4 bytes, por lo tanto, una fila X de longitud tomará 4 bytes.
Por lo tanto, una matriz 2-D de X * Y será de 4 * X * Y bytes.
Cualquier dirección dicen Arry [X] [Y] sería calculado como: (Dirección Base de Arry) + (X * Nº de columnas) + (Y // Offset en la fila actual)
Una matriz anidada es una matriz de matrices.
Por ejemplo, un int[][6]
es una matriz de int[6]
.
Suponiendo un int
de 4 bytes, cada elemento en el conjunto externo es 6 * 4
= 24 bytes de ancho. Por lo tanto, arr[4]
obtiene la tercera matriz en la matriz externa, o *(arr + 4 * 24)
.
arr[4]
es un int[]
normal. arr[4][2]
obtiene la segunda int
en esta matriz interna, o *(arr + 4 * 24 + 2 * 4)
Las matrices bidimensionales en C son rectangulares. Por ejemplo:
int matrix[2][3];
asigna un solo bloque de memoria 2*3*sizeof(int)
bytes de tamaño. Dirigirse al matrix[0][1]
es solo una cuestión de agregar 0 * (3 * sizeof(int))
al sizeof(int)
. A continuación, agregue esa suma a la dirección en la que comienza matrix
.
Por ej.
char anArray[][13]={"Hello World!","February","John"};
Puede visualizarlo como:
anArray
:
H|e|l|l|o| |W|o|r|l|d|!|\0|F|e|b|r|u|a|r|y|\0|\0|\0|\0|\0|J|o|h|n|\0|\0|\0|0|\0
^ ^ ^
0 13 26
En realidad, se garanticen todos los personajes para los cuales usted no da un inicializador que ser inicializado a \ 0 . Entonces debes reemplazar todo tu '+' por '\ 0'. –
- 1. Generación 2D de mapas en mosaico
- 2. generación de una cuadrícula 2D en Haskell
- 3. Imprimir una matriz 2D en C
- 4. Cómo pasar matriz 2D (matriz) en una función en C?
- 5. Realista 2D generación de mapas de terreno
- 6. Cómo aplanar matriz 2D a matriz 1D?
- 7. ¿Cómo declarar una matriz 2D de tamaño variable en C?
- 8. cómo encontrar el tamaño de la matriz 2d en C++
- 9. Cálculo de una matriz de transformación 2D a partir de una matriz 2D inicial y resultante
- 10. Inicializando matriz 2D en Python
- 11. F # Crear matriz 2D
- 12. Transponer una matriz 2D
- 13. ¿Cómo devolver una matriz 2D a una función en C?
- 14. escribir matriz 2D a un archivo en C
- 15. Todas las posibilidades en la matriz 2D
- 16. 2d iteración de matriz scala
- 17. Pregunta de matriz 2D Java
- 18. Guardando matriz 2D numérica en la imagen
- 19. Atravesar una matriz F # 2D
- 20. ¿Ordenar una matriz 2D binaria?
- 21. 2D matriz de objetos en Python
- 22. Agrupación de matriz numpy 2D en promedio
- 23. matriz de impresión 2D en formato de matriz
- 24. Dirección de la matriz
- 25. Crear un degradado lineal en matriz 2D
- 26. Intentando hacer una matriz 2D de listas
- 27. Producir matriz 2D de una matriz 1D en MATLAB
- 28. Convierte una matriz 2D en una matriz de 1D
- 29. matriz 2D grande da fallo de segmentación
- 30. Convertir una matriz 1D en una matriz 2D en numpy
Gracias Michaels – Lagnesh