Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Problema al pasar array bidimensional a funcion

Estas en el tema de Problema al pasar array bidimensional a funcion en el foro de C/C++ en Foros del Web. Hola a todos igual mi duda es muy básica, o directamente es una locura pero ahi va: el caso es que estoy haciendo un progrmaa ...
  #1 (permalink)  
Antiguo 22/12/2010, 14:10
 
Fecha de Ingreso: octubre-2010
Ubicación: madrid
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
Problema al pasar array bidimensional a funcion

Hola a todos igual mi duda es muy básica, o directamente es una locura pero ahi va:

el caso es que estoy haciendo un progrmaa en el que necesito imprimir un array que cambia ciertos valores por asteriscos o espacios para formar un tablero de equivalencias:

if(a[z][m]==1)//si el valor de la matriz es 1, pinta un asterisco
{
printf(" *");
}
else//sino es 1, (es decir que es cero) pinta un espacio
{
printf(" ");
}

Esto funciona bien. pero el problema es cuando quiero pasar esto a una función, ya que lo tengo en la función main y es algo que se repite bastante y me gustaría tenerlo en otra función. El problema es que el array no puede tener inicializado ninguno de los dos valores por que estos no son fijos.
se que si inicializas al pasarlo a la funcion uno de las dimensiones, funciona:ejemplo;a[][6] pero a mi no me vale.

¿hay alguna forma de pasar un array bidimensional a una función si inicializar ninguna de sus dimensiones?
es decir, por ejemplo el array a[x][y].

gracias de antemano
  #2 (permalink)  
Antiguo 22/12/2010, 14:45
Avatar de Munire  
Fecha de Ingreso: julio-2010
Ubicación: en el ciberdespacio (España)
Mensajes: 150
Antigüedad: 14 años, 4 meses
Puntos: 4
Respuesta: Problema al pasar array bidimensional a funcion

por lo que te he entendido, quieres crear un array pero no definir las filas y columnas, sino definirlas despues.

cuando creas un array tienes que definirlo, es decir las filas y columnas, por que eso indica al compilador el espacio de memoria que va a reservar. si creas una matriz y no de dices filas y columnas te da un error por que no sabe cuanta memoria reservar.

pero hay una forma de crear una matriz y decidir luego las filas y columnas. para ello primero tienes que crear un puntero, y luego en la funcion o donde quieras, le asignas la memoria que quieras, es decir lo trasnformas en matriz (de hecho una matriz es un puntero al primer elemento). esto se hace con la funcion malloc.

volviendo a tu pregunta... la forma de pasaar una matriz por una funcion sin inicializar es, crear un puntero pasarlo por la funcion y luego en la funcion asignar memoria para la matriz.
  #3 (permalink)  
Antiguo 27/12/2010, 12:53
 
Fecha de Ingreso: octubre-2010
Ubicación: madrid
Mensajes: 10
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema al pasar array bidimensional a funcion

muchas gracias, tu respuesta me a sido de ayuda.le paso la posicion de memoria del array a la funcion y opero con ella dentro.

Etiquetas: funcion, pasar, bidimensionales
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:07.