El problema q tengo es q mi proyecto por ser el primero ya ocupa muchos recursos asi q llego la hora de liberar memoria cuando el programa esta descansando :)
Asi pues tengo un array bidimensional y no consigo pasarlo entre las funciones, lo he intentado con punteros pq no consigo q la funcion me devuelva un array pero no me llega entero.
¿Como he de proceder para pasar arrays entre funciones?
Antares
¡Hola!,
ayudaría que dijeras en que entorno y lenguaje estas trabajando. :loco:
Voy a suponer que es C:
char a[10][10]; //Array bidimensional
void f(char (* a)[10][10]) //Función que admite un puntero al array
{
...
}
f(&a); //Forma de llamar a la función
Para evitar escribir tanto puedes declarar un tipo:
typedef char (* PTR)[10][10];
También puedes definir los parámetros como void *, sobre todo si el tamaño de los arrays es variable, y luego hacer un casting al tipo adecuado.
Saludos
Pozi, tienes razon uso Visual c++ 6.0
¿Y para que la funcion devuelva el array?
Citar
Compiler Error C2090
function returns array
A function cannot return an array. It can return a pointer to an array.
No puedes devolver un array. Pero sí un puntero a un array.
Más o menos así:
typedef char (* PTR)[2][2];
PTR f()
{
static char m[2][2] = { {'a', 'b'}, {'1', '2'} };
return(&m);
}
main()
{
PTR a = f();
printf("[0][0]=%cn", (*a)[0][0]);
printf("[0][1]=%cn", (*a)[0][1]);
printf("[1][0]=%cn", (*a)[1][0]);
printf("[1][1]=%cn", (*a)[1][1]);
}
Espero te sirva.
Saludos