
Go backward to Apontadores II, variaveis "automaticas"
Go up to Alguns exercícios a exemplos dados nas aulas teóricas
Go forward to Mais apontadores
Imitando o malloc
// -----------------------------------------------------------------------------
// Apontadores III
// Funcao semelhante a malloc
#include <stdio.h>
int *espaco(int);
#define MAX 1000
static int mem[MAX];
static int *mp=mem;
main(){
int * p; // equivalente a int p[]
int * a;
// p e a nao apontam para nenhum local especial (lixo)
p=espaco(10);
a=espaco(5);
p[2]=-55;
a[3]=999;
printf("p[2]=%-d, a[3]=%-d\n",p[2],a[3]);
}
int *espaco(int n){
int *t;
if(mp+n>=mem+MAX)
return(NULL); // Nao ha' espaco!
t=mp;
mp+=n;
return(t); // apontador para n posicoes
}
/* Resultados:
p[2]=-55, a[3]=999
*/
