No sé si algún compilador permitirá eso, pero desde luego GCC no, porque no es estándar. En C la memoria dinámica no es tan sencilla de gestionar. Lo correcto sería algo así:
nt main()
{
int n;
int *a;
printf("Nro. de elementos: ");
scanf("%d", &n);
a = malloc (sizeof(int)*n);
memset(a, 0, sizeof(int)*n);
// También podrías hacer esto
// a = calloc (n, sizeof(int));
return 0;
}
Se me olvidaba. Puede que el compilador te diga que el código de arriba es incorrecto porque hace una asignación de punteros de no-se-qué. En ese caso, necesitarás hacer un cast:
Los comentarios con // se admiten en C99 pero no en versiones anteriores de C, aunque muchos compiladores los aceptan. Por las versiones anteriores, hay que usar los comentarios con /* */:
/* También podrías hacer esto */
/* a = calloc (n, sizeof(int)); */
--
--
Mi idioma materno es el inglés. Perdonadme mi español por favor.
Delendae sunt RIAA, MPAA et Windoze
o_O
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
nt main()
{
int n;
int *a;
printf("Nro. de elementos: ");
scanf("%d", &n);
a = malloc (sizeof(int)*n);
memset(a, 0, sizeof(int)*n);
// También podrías hacer esto
// a = calloc (n, sizeof(int));
return 0;
}
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
Re:o_O
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Viernes, 17 Noviembre de 2006, 23:39h )
a = (int *) malloc (sizeof(int)*n);
Ph'nglui mglw'nafh Cthulhu R'lyeh wgah'nagl fhtagn!
Re:o_O
(Puntos:1)( http://barrapunto.com/ | Última bitácora: Sábado, 28 Enero de 2006, 22:32h )
/* También podrías hacer esto */
/* a = calloc (n, sizeof(int)); */
--
Mi idioma materno es el inglés. Perdonadme mi español por favor.
Delendae sunt RIAA, MPAA et Windoze