Go Down

Topic: array de punteros a arrays (Read 1 time) previous topic - next topic

Jose Francisco

Buenas.

Supongamos que tengo:
-int array[10]
-funcion(array)

Supongamos que quiero hacer un bucle que ejecute funcion(array) sobre un array distinto en cada ciclo.

He pensado que la solución sería hacer otro array que contenga las direcciones de los arrays a utilizar, y luego pasar a funcion(array) las posiciones de este nuevo array.

¿se haría así? ¿como declaro el nuevo array?

gracias

*

#1
May 24, 2012, 12:43 am Last Edit: May 24, 2012, 01:07 am by JMN Reason: 1
Aunque mi c no anda muy bien, por lo que no sé si me equivoco (corregidme), o te creas un array de dos dimensiones en el que todas las filas tienen la misma longitud: int datos[fila][columna], o un array de punteros con la ventaja sobre el anterior de que las filas pueden ser de distinta longitud: int * datos[ x ]; y en el while(condición) haces función( * datos ++); Declarando la función como función(int array [ ]); cada elemento de datos debe contener la dirección del primer elemento del array correspondiente.


chiva

Aquí tienes un ejemplo:
http://arduino.cc/forum/index.php/topic,107077.0.html
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Jose Francisco

#3
May 24, 2012, 07:50 pm Last Edit: May 24, 2012, 07:57 pm by Jose Francisco Reason: 1
A ver...

Supongamos que tengo 10 arrays del estilo:

int miarray0[20];
int miarray1[20];
int miarray2[20];
...
int miarray9[20];

Creo un array de punteros de la siguiente manera:

int * contenedor[10];          
contenedor[0] = miarray0
...
contenedor[9] = miarray9

lanzo la función dentro de un bucle.
funcion() admite un array de enteros

funcion(contenedor[var])


¿es más o menos eso?

chiva

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Jose Francisco

No, en este pc no puedo probarlo.
Preguntaba si es esa la estrategia.

Un saludo.

chiva

Puede que si, pero me parece que falta algo, una vez pruebes a compilarlo lo sabremos
Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

jorgepl

¿Por qué quieres pasar como parámetro el array completo? Es un desperdicio de memoria.

Si hay que pasar un array a una función, pásale el puntero al array.

Go Up