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.