Speicher von 3-dim Array freigeben



  • Hi
    ich hab ein 3-dimensionales array angelegt:

    painel = (double ***)malloc(M * sizeof(double **));
    	for(i = 0; i < M; i++) {
    		painel[i] = (double **)malloc(4 * sizeof(double *));
    		for(j = 0; j < 4; j++)
    			painel[i][j] = (double *)malloc(3 * sizeof(double));
    

    Jetzt wuerd ich den speicher gerne wieder freigeben und bekomm das irgendwie nicht hin. Kann mir da vielleicht mal jemand helfen?

    2-dim ist das ganze kein problem...



  • Wenn du es mit 2D kannst, sollte die zusätzliche Dimension kein Problem sein - du mußt dein Array nur "rückwärts" wieder demontieren:

    for(i = 0; i < M; i++)
    {
      for(j = 0; j < 4; j++)
        free(painel[i][j];
      free(painel[i];
    }
    free(painel);
    


  • danke fuer die schnelle antwort...
    ich stand gerade ein bisschen auf der leitung...hatte nur eine klammer falsch gesetzt..


Anmelden zum Antworten