Salve ragazzi! Sono alle prese con un programmino che mi da difficoltà, leggete il seguito!
Il programma è cosi strutturato:
una strut Data con i membri, gg, mm, aa
Un array dinamico di elementi Data
4 funzioni:
-2 funzioni si occupano dell'input:
-----una si occupa di prendere in input un solo elemento
-----l'altra chiamando in modo ciclico la precedente memorizza tutti gli elementi fino a che la variab sentinella ctrl vale 1
-2 funzioni si occupano dell''output
-----hanno la stessa logica di quelle di input solo che non c'è, ovviamente la sentinella

Ok ragazzi ecco il codice, spero che ora mi potrete aiutare con piu semplicità :-) vi ringrazio

codice:
#include <stdio.h>
#include <stdlib.h>
struct Data {
	int gg;
	int mm;
	int aa;
};typedef struct Data Data;

/* Prototipi */
Data input_singolo( void );
void stampa_singolo( Data x );
int input_tutti( Data* V, int* nE );
void stampa_tutti( Data* V, int n );

int main(void) {

	Data* Vett = NULL;
	int numEl = 0;
	
	int istr = input_tutti( Vett, &numEl );
	stampa_tutti( Vett, numEl );

	return 0;
}

/* Prende in input tutti gli elementi di V.
 * riceve V ed un puntatore alla var numEl.
 * col puntatore salva il numero di elementi dell'array,
 * e ritorna il valore immesso a ctrl */
int input_tutti( Data* V, int* nE ) {
	int i = *nE;
	int ctrl = 0;
	while( ctrl != 1 ) {
		V = realloc( V, (i+1)*sizeof(Data) );
		V[i++] = input_singolo();
		printf( "Immettere 1 per fermare l'inserimento, immettere 0 per continuare: " );
		scanf( "%d", &ctrl );
	}
	*nE = i;
	return ctrl;
}

/* stampa tutti gli elementi di V  */
void stampa_tutti( Data* V, int n ) {
	for( int i = 0; i < n; i++ ) {
		stampa_singolo( V[i] );
	}
}

/* prende in input un elemento di tipo Data */
Data input_singolo( void ) {
	Data x;
	printf("Inserire data (g/m/a): ");
	scanf( "%d/%d/%d", &x.gg, &x.mm, &x.aa );
	return x;
}

/* stampa singolo elemento */
void stampa_singolo( Data x ) {
	printf("%d/%d/%d\n", x.gg, x.mm, x.aa);
}
Errore:
3@tre ~
$ gcc -Wall -std=c99 a.c -o a.exe
a.c: In function ‘main’:
a.c:20:6: warning: unused variable ‘istr’

3@tre ~
$ ./a.exe
Inserire data (g/m/a): 29/7/1990
Immettere 1 per fermare l'inserimento, immettere 0 per continuare: 0
Inserire data (g/m/a): 7/6/1991
Immettere 1 per fermare l'inserimento, immettere 0 per continuare: 1
Exception: STATUS_ACCESS_VIOLATION at eip=00401283
eax=00000000 ebx=00000000 ecx=20000037 edx=00000000 esi=61268A54 edi=6119DD5F
ebp=0022CC98 esp=0022CC70 program=C:\cygwin\home\3\a.exe, pid 1668, thread main
cs=001B ds=0023 es=0023 fs=003B gs=0000 ss=0023
Stack trace:
Frame Function Args
0022CC98 00401283 (00000000, 00000002, 0022CCE8, 49435341)
0022CCC8 004011BA (00000001, 0022CCF0, 20010100, 612671DE)
0022CD58 61006EE8 (00000000, 0022CDA8, 610064E0, 00000000)
End of stack trace
Segmentation fault (core dumped)

3@tre ~
$