Ver Mensaje Individual
  #10 (permalink)  
Antiguo 18/12/2014, 09:25
eferion
 
Fecha de Ingreso: octubre-2014
Ubicación: Madrid
Mensajes: 1.212
Antigüedad: 9 años, 7 meses
Puntos: 204
Respuesta: ¿Algún alma caritativa que me eche una mano?

Cita:
Iniciado por vangodp Ver Mensaje
¿Que problema tiene declarar int vector1[tam1], vector2[tam2]; según el estándar? ¿De alguna forma hay que declararlo no?
El problema es que el estándar dice que, en estos casos, el tamaño del arreglo tiene que quedar establecido en tiempo de compilación... tu ahí estás forzando a que el tamaño se establezca en tiempo de ejecución.

Un ejemplo en el que se ve más claro:

Código C:
Ver original
  1. int funcion( int filas, int columnas, int array[filas][columnas] )
  2. {
  3.   int i, j;
  4.   for ( i=0; i < filas; i++ )
  5.   {
  6.     for ( j=0; j < columnas; j++ )
  7.     {
  8.       printf( "%d ", array[i][j] );
  9.     }
  10.   }
  11. }

¿Me podrías decir cómo puede el compilador saber en este código cuánto vale "columnas" para calcular los saltos correctamente? No puede. Es algo que queda para tiempo de ejecución y solo en aquellos casos en los que el compilador esté preparado para ello... que como digo, al no formar parte del estándar no es algo seguro.

La forma de afrontar estos casos pasa por reservar memoria de forma dinámica con malloc.