sobre c y los arrays

Todo aquello que no está relacionado con Gemix Studio ni con la programación DIV en general.
Post Reply
User avatar
shao
Posts: 6048
Joined: Wed Jun 17, 2009 4:51 pm

sobre c y los arrays

Post 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?
User avatar
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: sobre c y los arrays

Post 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 :)
User avatar
kozka
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: sobre c y los arrays

Post 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:
User avatar
shao
Posts: 6048
Joined: Wed Jun 17, 2009 4:51 pm

Re: sobre c y los arrays

Post 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
User avatar
CicTec
Posts: 16590
Joined: Thu Jul 31, 2008 10:18 pm

Re: sobre c y los arrays

Post 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 ;)
User avatar
GINO
Posts: 2823
Joined: Thu Jul 31, 2008 10:25 pm
Contact:

Re: sobre c y los arrays

Post 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.
User avatar
kozka
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: sobre c y los arrays

Post 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
User avatar
xdios
Posts: 188
Joined: Thu May 28, 2009 12:41 pm

Re: sobre c y los arrays

Post 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.
[RETO]: Concurso navideño - [JUEGO]: La Fábrica de Regalos
User avatar
TYCO
Posts: 3611
Joined: Tue Sep 02, 2008 7:38 pm
Contact:

Re: sobre c y los arrays

Post 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.
Todo Modo Gráfico tiene por detrás una Línea de Comandos.

Proyecto: SnowCraft Remake (100%).
Proyecto: Bomb a Bomb Remake (100%).
Proyecto: Rally Mortal (87%).

[RETO]: 20lineas - [JUEGO]: eLaberinto[CONCURSO]: EL JUEGO DEL VERANO 2011 - [JUEGO]: PlayaBall
Post Reply

Return to “Offtopic”