Imprimir arreglo

Camila
12 de Diciembre del 2005
tengo un arreglo de tamaño n ingresado por el usuario y luego debe imprimirlo por pantalla. este es el codigo que tengo:

#include <stdio.h>
#include <conio.h>

int *memoria (int n)
{
int *aux;
aux=(int*) malloc (n*(sizeof(int)));
if (aux==0)
{
printf("n Memoria insuficiente, cierre algunas aplicaciones y vuelva a intentar");
exit (0);
}
else
return aux;
}

main ()
{
int n, i;
int *A;
char *arreglo [n];

printf ("n Ingrese el tamaño del arreglo:");
scanf ("%d", &n);
A=memoria (n);

for (i=0; i<n; i++)
{
printf ("n Ingrese dato [%d]:", i+1);
scanf ("%s", &arreglo [i]);
}

if (i=n)
{
printf ("nEste es su arreglo");
i=0;
while (i<n)
{
printf ("%d.- %sn", i+1, &arreglo [i]);
i++;
}
}
getch ();
}

funciona a la perfeccion siempre y cuando el n sea menor o igual a 3, para n superior falla la impresion del arreglo... ojala puedan ayudarme.

GRACIAS

pedrohv012005
12 de Diciembre del 2005
Realmente no se como te funciona para n<3.
Primero tines que darle un valor a n;

de lo contrario, en : char *arreglo [n];
el arreglo tendra tamaño 0 o el que le de el compilador a la variable n. Otra cosa, en la condicion debe ir : if (i==n), no if (i=n), pero eso no es tan grabe.

Debes asignarle arreglo.