Page 1 of 1
sobre c y los arrays
Posted: Wed Oct 14, 2009 11:53 pm
by shao
hola,estoy aprendiendo c en un curso y he llegado al tema de representar arrays multidimiensionales mediante punteros
el tema de representar arrays unidimensionales mediante punteros lo tengo claro.
la duda llega en si deberia aprender a representar los multidimiensionales con punteros.
segun me ha dicho mi mentor es mas complicado y no es necesario aprenderlo ya que para representarlos es mas facil el modo convencional (num[6][6][5])
me vendria bien estudiarlo para aplicarlo luego a la programacion con gemix o como dice mi tutor no es necesario?
Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 12:09 am
by CicTec
hola shao,
Pues si, lo que te dijo tu tutor es correcto, no los usa casi nadie, porque aparte de ser mas complicados de usar, resultan tambien mas de leer, lo usual es usar la forma mediande array clasica, con la nueva beta de Gemix utilizas el array de la misma forma mediante la nueva opcion cstyle_matrix:
Code: Select all
compiler_options _use_cstyle_matrix;
program test_arrays;
global
int num[10][10][10]; // array de 10x10x10
begin
num[6][6][5] = 10;
end
La forma con puntero no te la recomiendo es mucho mas compleja de entender y programar

Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 12:11 am
by kozka
eso es un poco trabalenguas tronco xD..nose
a[5];=5 int a los que poder acceder mentiante a[1]=patata a[2]=pataton
a[5][5]; a[1][1]=patata a[1][2]=pataton
nose
caracteristicas_enemigo[3][3]; // [x][1]=vidas [x][2]=velocidad [x][3]=yokese
caracteristicas_enemigo[1][1]=10; //el enemigo numero 1 tendra 10 de vida
caracteristicas_enemigo[1][1]--; //le quitamos una vida al tronko xd
espero te sirva de algo

Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 12:15 am
by shao
tio,d.p.m.
por que la verdad me parecia un engorro el tema.
me agrada que exista la funcion,a mi me sera mas facil representarlos asi.
gracias
Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 12:35 am
by CicTec
shao wrote:tio,d.p.m.
por que la verdad me parecia un engorro el tema.
me agrada que exista la funcion,a mi me sera mas facil representarlos asi.
gracias
jeje me alegra, te lo pongo solo por curiosidad comparativa, las versiones con array y con puntero:
Code: Select all
int array[10][10][10];
int *ptrarray = array;
array[6][6][5] = 10; // version array clasica con indices
*(*(*(ptrarray + 6) + 6) + 5) = 10; // version array por medio de punteros
Creo que no haya duda de cual sea mas sencillo y facil de implementar y entender

Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 12:40 pm
by GINO
kozka: aunque declares el array al estilo C como [10][10][10], osea, indicando el numero de elementos de cada dimension, sigue siendo Zero based, es decir, accedes a los elementos con los indices 0 .. 9, como se hace en C.
Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 10:26 pm
by kozka
patata[10] ---- ya yase que empieza por el 0 .... pero entonces que hay 11 XD oke?-..nose supongo que cuando lo halla usao me daria cuenta
de todas formas estoy mu fuamo
Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 10:52 pm
by xdios
Tios no se de que leches estais hablando pero os apoyo...
A ver si este año que me he matriculao en programacion me pongo al dia en ciertas terminologias que se me escapan.
Re: sobre c y los arrays
Posted: Thu Oct 15, 2009 11:08 pm
by TYCO
kozka wrote:patata[10] ---- ya yase que empieza por el 0 .... pero entonces que hay 11 XD oke?-..nose supongo que cuando lo halla usao me daria cuenta
de todas formas estoy mu fuamo
patata[10] directamente tienes desde... patata[0] hasta patata[10].
Si indicas que sea como en C... tendrías:
patata[10] desde... patata[0] hasta patata[9].
tienes que indicar al principio: compiler_options _use_cstyle_matrix; antes del PROGRAM.