Ayuda programa en C

Dj. EniGmA rebuznó:
Aypermen rebuznó:
... bla bla bla ...

Tu veste a babearle a la Nicte q estos temas te kedan grandes, malloc() es una funcion q sirve para reservar un area de memoria del tamaño q le pasas como parametro y q devuelve un puntero al primer byte d la zona reservada, no se d donde te sacas q es para hacer un array porke son cosas q no tienen nada q ver.


No sabes de coches no sabes de platos no sabes de programar... muy mal Aypermen muy mal

A ver zoquete mental, tengo el culo pelao de programar en C y en ensamblador y para mi un array no es más que un lugar donde hay cosas unas detrás de otra de forma que se puede acceder individualmente a cada una.

Tengan el nombre que tengan, todo lo que salga de ahí no son más que otras formas (mucho más homosexuales) de enfocar el problema.
 
Para ti un array es blablabla...¿? NO, no te puedes inventar tus propias deficiniones d cualkier cosa, un array ES LO QUE ES y es para todos lo mismo, y un array no es mas q una serie finita de elementos uno detras de otro en general del mismo tipo y que pueden ser accedidos mediante un indice. PUNTO.

malloc() no es para declarar un array, malloc() como ya t e dicho reserva una zona d memoria y devuelve un puntero a ella, otra cosa es q tu metas un array pero en esa zona puedes meter CUALKIER COSA, desde una estructura hasta un objeto previamente creado, o incluso dejarla vacia.

Me suda la polla q con 15 años pasaras las tardes pajeandote y haciendo chorradas en el spectrum, programar sabe asta mi vieja yo tmb llevo años metiendo las palomitas al microondas y no por ello soy concinero.
 
Dj. EniGmA rebuznó:
Para ti un array es blablabla...¿? NO, no te puedes inventar tus propias deficiniones d cualkier cosa, un array ES LO QUE ES y es para todos lo mismo, y un array no es mas q una serie finita de elementos uno detras de otro en general del mismo tipo y que pueden ser accedidos mediante un indice. PUNTO.

malloc() no es para declarar un array, malloc() como ya t e dicho reserva una zona d memoria y devuelve un puntero a ella, otra cosa es q tu metas un array pero en esa zona puedes meter CUALKIER COSA, desde una estructura hasta un objeto previamente creado, o incluso dejarla vacia.

No se puede ser tan de ideas fijas o empollarse lo que dicen los apuntes o lo libros y en base de ello mirar la vida.

Un array es un concepto abstracto -como todo en informática- y en cierta medida ambiguo, por lo que da pie a muchas maneras de lidiar con ellos.

A veces hay que declararlos, a veces no. Se pueden acceder en su conjunto, o por elementos sueltos, pueden ser dinámicos o estáticos, etc... etc..

Es entonces cuando el lenguaje de programación entra en juego y define "su manera" de tratar con ellos, incluso de denominarlos.

Por ejemplo:

En ensamblador, para usar "un array" hay que reservar un área de memoria determinada, saber la longitud de cada elemento y calcular donde comienza el de index requerido con una multiplicación y offset. Evidetemente hay que vigilar que nadie se meta en esa área ni salirte de ella.

En el Basic del SPECTRUM y similares, si mal no recuerdo era escribir DIM A(20) y creaba un array de 20 posiciones (del 1 a 20) de enteros. Para hacerlo de cadenas, sería DIM A$(20)

En ANSI C, se declara con el tipo y su tamaño entre corchetes, si lo quieres fijo, o corchetes vacíos si quieres asignarle lluego la memoria.
De igual manera, un puntero puede servir de array convenientemente tratados. Por ejemplo:

char *img;
img = malloc(64000);

Ahí tienes dos cosas, bien un lugar para cargar un archivo de 64000 bytes, o bien un array de 64000 bytes. O un string de 64K.

Lo que te de la gana.


En PHP ya te da igual, en un momento dado le pones unos corchetes a una variable y ya tienes el array, o sea que ya esta discusión es absurda.

Un buen diseñador de algoritmos está por encima de como se llaman a las cosas, pero claro, veo que tu distas bastante de ser eso.
 
Hyperman rebuznó:
En PHP ya te da igual, en un momento dado le pones unos corchetes a una variable y ya tienes el array.

En PHP puedes hacer lo que te salga de los huevos, el que se pase de programar una temporada en C a PHP puede flipar y al reves ni te digo...

Ahora mismo curro programando en php, aunque no me convence mucho el lenguaje... :?
 
vamos a ver, no es cuestion d ser d ideas fijas es cuestion de llamar a cada cosa por su nombre.

Al hacer un malloc() estas reservando espacio en memoria, tu puedes usar ese puntero devuelto por malloc() para acceder a sus bytes con *indice, *(indice+1), ... *(indice+n) y por eso dices q es una forma d declarar arrays, pues alla tu pero por esa regla de tres toda la memoria RAM (e incluso el disco duro) son un array, pues no son mas q una sucesion de bytes que pueden ser accedidos uno a uno a partir de un indice hasta leerlo entero.
 
Dj. EniGmA rebuznó:
vamos a ver, no es cuestion d ser d ideas fijas es cuestion de llamar a cada cosa por su nombre.

Al hacer un malloc() estas reservando espacio en memoria, tu puedes usar ese puntero devuelto por malloc() para acceder a sus bytes con *indice, *(indice+1), ... *(indice+n) y por eso dices q es una forma d declarar arrays, pues alla tu pero por esa regla de tres toda la memoria RAM (e incluso el disco duro) son un array, pues no son mas q una sucesion de bytes que pueden ser accedidos uno a uno a partir de un indice hasta leerlo entero.

:D hombre, por fin, un halo de luz !

menos mal...

Efectivamente, en un momento dado, se puede considerar a toda la RAM como un array de bytes. De hecho lo es.

Y fin del tema.
 
Atrás
Arriba Pie