Dynamischer Speicher mit realloc und malloc



  • Hallo leute,
    ich habe ein Problem, undzwar habe ich die Aufgabe ein 2-D int array dynamisch zu erstellen.
    1.)Ich lese aus einer datei immer neu zeilen und spalten ein, wobei die spalten sich nicht ändern. Dabei soll ich das Array bei jedem neuen einlesen der zeile, das Array dementsprechend vergrößern, so dass die neuen zeilen nun "hinten ran geschoben" werden.(Also das array soll die alte größe + die neue größe sein).

    Das ist mein Code:

    bild greybild;
    	char magicNumber[3];
    	int spalten;
    	int zeilen;
    	int oldZeilen=0;
    	int maxGrauWert;
    	int** arr = malloc(0);
    
    	for(int i=0;i<j;i++){
    		fscanf(in[i],"%2s%i%i%i",magicNumber,&spalten,&zeilen,&maxGrauWert);
    		alloziereArray(&arr,zeilen,spalten,i,&oldZeilen);
    		if(i==1)arr[1400][0]= 2; // hier schaue ich ob das array vergößert wurde
    		printf("%2s-%i-%i-%i|",magicNumber,spalten,zeilen,maxGrauWert);
    	}
    
    void alloziereArray(int*** arr,int newZeilen, int spalten,int anzbilder,int* oldZeilen){
    	printf("%i",newZeilen*sizeof(*arr));
    	*arr = (int**)realloc(*arr,sizeof(int*)*(*oldZeilen)+newZeilen*sizeof(int*));
    	for(int i=0;i<newZeilen;i++){
    		(*arr)[i+(anzbilder*newZeilen)] = (int*)malloc(spalten*sizeof(int));
    	}
    	*oldZeilen +=newZeilen;
    }
    

    Ich freu mich über jede gut hilfe denn ich verzweifle schon.Danke schon mal im vorraus. 🙂



  • Welche Frage hast du?



  • Was für eine bescheuerte Frage - der OP sieht den ************ vor lauter * derln nimma.


Anmelden zum Antworten