Há duas maneiras de armazenar variáveis na memória do computador. Primeiro por variáveis globais e static locais, segundo através de alocação dinâmica, quando o C armazena a informação em uma área de memória livre, de acordo com a necessidade. No caso do C standart, a alocação dinâmica fica disponível com a inclusão de stdio.h.
Ex.
main()
{
int *p, t;
p=(int *) malloc(40*sizeof(int));
if (!p)
printf("memoria insuficiente\n");
else
{
for(t=0;t<40;++t) *(p+t)=t;
for(t=0;t<40;++t) printf("%d ",*(p+t));
free(p);
}
}
Ex:
#include <stdio>
main()
{
int i,quant;
float max,min,*p;
printf ("quantidade de numeros:\n");
scanf("%d",&quant);
if (!(p=(float*)malloc((quant+1)*sizeof(float))))
{
printf("sem memoria\n");
exit(1);
}
printf("digite %d numeros:\n",quant);
for (i=1;i<=quant;i++)
{
scanf("%f",(p+i));
}
max=*(p+1);
for (i=2;i<=quant;i++)
{
if (*(p+i)>=max)
max=*(p+i);
}
printf("maior e :%f\n",max);
free(p);
}