Anzeige:
Ergebnis 1 bis 6 von 6

Thema: realloc in Funktion auslagern

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #4
    Registrierter Benutzer
    Registriert seit
    02.08.2008
    Beiträge
    177

    Übung macht den Maeister!

    Hi,
    vielen Dank für Eure Unterstützung. Das Speicherleck wäre mir für eine längere Zeit, wenn überhaupt, gar nicht erst, aufgefallen. Ich habe noch eine Variante ausprobiert:
    Code:
    #include <stdio.h>
    #include <stdlib.h>
    
    
    void mymalloc(int *data,int rows){
            data = malloc(rows*sizeof(*data));
    }
    
    void myrealloc(int *data,int rows){
            data = realloc(data,rows*sizeof(*data));
    }
    
    void myrealloc2(int **data,int rows){
            *data = realloc(*data,rows*sizeof(**data));
    }
    
    
    int main()
    {
            int *a;
            printf("&a=%p, a=%p\n",&a,a);
            a = malloc(sizeof(int));
    //         mymalloc(a, 1);
            printf("&a=%p, a=%p\n",&a,a);
            myrealloc(a, 6);
            printf("&a=%p, a=%p\n",&a,a);
    	
            int *b;
            b = malloc(sizeof(int));
            myrealloc2(&b, 6);
    
    	int i;
            for(i = 0; i < 6; i++){
                    a[i] = 1;
                    b[i] = 1;
    	}
    
            for(i = 0; i < 6; i++){
                    printf("%d\n",b[i]);		
    	}
    
    	
            printf("\n");
    
            free(a);
            free(b);
    	
            return 0;
    }
    Was zeigen würde, das ein Doppelpointer gar nicht erst benötigt wird.
    Vielen Dank!
    Geändert von dml (17-05-2013 um 13:43 Uhr)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •