Hi!
Ich habe mal wieder eine kleine Frage. Ich möchte gerne realloc in eine Funktion auslagern:
Code:
void reallData(Data **data, int rows){
	
	extern Count cnt;

	data = (Data*) realloc(data, rows * sizeof(Data));
	if(data == NULL){
		fprintf(stderr, "out of memory\n");
// 		return 0;
	}
	data[0].id = 75;
	int i;
	for(i = cnt.value_rows; i < cnt.value_rows+rows; i++){
		data[i].value = (double*) malloc(cnt.value_colums * sizeof(double));
		data[i].value = i;
		if(data[i].value == NULL){
			fprintf(stderr, "out of memory\n");
// 			return 0;
		}
	}
	
}
Doch erhalte nur Fehlermeldungen.
Gelöst habe ich das Problem auch schon indem ich Data mit
Code:
extern Data data;
in der Funktion initialisiert habe.
Doch eigentlich interessiert mich, warum es nicht funktioniert? Meiner Auffassung nach müsste es dem Compiler doch egal sein, ob noch ein Zeiger auf die Struktur zeigt oder nicht. Die Aufklärung würde mich wirklich interessieren.

Grüße dml!