por qué me estoy poniendo así; Si quiero llevar todos los datos de una matriz a otra matriz, ¿cómo puedo hacerlo?
Sugiérame si alguien sabe.
No puede obtener el tamaño de una matriz en C sin más información.
– m0skit0
23 de febrero de 2012 a las 12:31
@Oli Charlesworth: busqué en Google pero no obtuve el enlace que me proporcionó; Gracias por proporcionar;
– alishaik786
23 de febrero de 2012 a las 12:41
No puede obtener el tamaño de un parámetro de matriz.
– Lame caliente
07/09/2014 a las 13:50
relajarse
Las matrices se descomponen en punteros en las llamadas a funciones. No es posible calcular el tamaño de una matriz que solo se representa como un puntero de ninguna manera, incluido el uso sizeof.
Debe agregar un argumento explícito:
void show(int *data, size_t count);
En la llamada, puede utilizar sizeof para calcular el número de elementos, para arreglos reales:
Tenga en cuenta que sizeof te da el tamaño en unidades de charrazón por la cual la división por lo que es esencialmente sizeof (int) es necesario, o obtendría un valor demasiado alto.
También tenga en cuenta, como un punto de interés y limpieza, que sizeof es no Una función. Los paréntesis solo son necesarios cuando el argumento es un nombre de tipo, ya que el argumento es una expresión tipo cast (p. ej. sizeof (int)). A menudo puede salirse con la suya sin nombrar los tipos reales, haciendo sizeof en datos en su lugar.
show(arr, tamaño de arr / tamaño de *arr);
– Során
5 sep 2014 a las 18:21
@Soran ¡Gracias, arreglado!
– relajarse
7 sep 2014 a las 13:43
Si bien creo que esta es la mejor solución general, es decir, pasar la longitud y la matriz, creo que también vale la pena señalar que para las matrices estáticas (es decir, la longitud no cambia durante la ejecución del programa), la solución más simple es establecer el tamaño de la matriz en el código fuente con una definición de preprocesador #define. Por ejemplo, #define ARRAY_SIZE 5
– Cuenta
31 mayo 2015 a las 20:42
Esa es la razón por la cual, al escribir una función que toma una matriz, se declaran dos parámetros. uno que es un puntero a la matriz, el otro que define el tamaño de la matriz.
show() toma la dirección de la matriz que se almacena en 2 bytes. Piense en ello como int *ar.
¿Ha sido útil esta solución?
Tu feedback nos ayuda a saber si la solución es correcta y está funcionando. De esta manera podemos revisar y corregir el contenido.
Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos.
Configurar y más información
No puede obtener el tamaño de una matriz en C sin más información.
– m0skit0
23 de febrero de 2012 a las 12:31
@Oli Charlesworth: busqué en Google pero no obtuve el enlace que me proporcionó; Gracias por proporcionar;
– alishaik786
23 de febrero de 2012 a las 12:41
No puede obtener el tamaño de un parámetro de matriz.
– Lame caliente
07/09/2014 a las 13:50