Usavi

struct s * p;

ma la struttura 's' non era dichiarata.

codice:
#include <stdlib.h>
#include <stdio.h>

struct persona
{
	int eta;
	int peso;
};

int main()
{
	struct persona *p, *persone[20];
	int i;

	for (i=0; i<20; i++)
		persone[i] = NULL;

	// allocazione dinamica di una persona
	p = (struct persona*)malloc(sizeof(struct persona));
	p->eta=20;
	p->peso=65;
	persone[5] = p; // così il 5° elemento dell'array punta alla persona creata

	// stessa cosa ma aggiungo una nuova persona all'8° elemento
	p = (struct persona*)malloc(sizeof(struct persona));
	p->eta=50;
	p->peso=75;
	persone[8] = p;

	// stampa della lista delle persone
	for (i=0; i<20; i++)
		if (persone[i] == NULL)
			printf("%2d : NULL\n", i);
		else
			printf("%2d : eta=%d, peso=%d\n", i, persone[i]->eta,  persone[i]->peso);

	return 0;
}