Page 1 of 1

sobre c y los arrays

PostPosted: 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

PostPosted: 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

PostPosted: 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 :P :? :blind:

Re: sobre c y los arrays

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: 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

PostPosted: Thu Oct 15, 2009 10:52 pm
by xdios
Tios no se de que leches estais hablando pero os apoyo... :y: :D

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

PostPosted: 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.