Fehler: cannot convert `int (*)[2]' to `int**' in initialization

Diskutiere Fehler: cannot convert `int (*)[2]' to `int**' in initialization im C/C++ Forum im Bereich Programmieren unter Linux/Unix; ich versuche gerade, ein Programm zu compilieren.... aber er bricht immer mit dieser Fehlermeldung ab. Die Zeile, um die es geht lautet: int...

  1. #1 Sternenjaeger, 19.12.2006
    Sternenjaeger

    Sternenjaeger Grünschnabel

    Dabei seit:
    19.12.2006
    Beiträge:
    3
    Zustimmungen:
    0
    ich versuche gerade, ein Programm zu compilieren.... aber er bricht immer mit dieser Fehlermeldung ab.

    Die Zeile, um die es geht lautet:

    int **fildes = new int[sequenz_laenge-1][2];


    fildes soll spaeter Deskriptoren fuer Pipes beinhalten... (bloede Zeiger *seufz*)
     
  2. Anzeige

    Anzeige

    Wenn du mehr über Linux erfahren möchtest, dann solltest du dir mal folgende Shellkommandos anschauen.


    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. musiKk

    musiKk Dr. Strangelove

    Dabei seit:
    30.07.2006
    Beiträge:
    264
    Zustimmungen:
    0
    Ort:
    Leipzig
    Hm... weiss nicht, inwieweit das hilft, aber man kann ja auch die C-Funktion malloc zum Speicher reservieren verwenden.
     
  4. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Du bist stolperst ueber den eher subtilen Unterschied zwischen Zeigern und Feldern gestolpert. Felder sind feste Bereiche im Speicher, ihr Ort aendert sich waehrend des Programmes nicht. Zeiger zeigen auf Bereiche im Speicher (z.B. auf den Beginn eines Feldes) und koennen waehrend des Programmablaufes auf unterschiedliche Bereiche zeigen.

    Wenn das alles zu kompliziert klingt, mach Dir nichts drauss: praktisch musst Du ein zweidimensionales, dynamisches Feld in zwei Schritten anlegen:

    Code:
    int **feld = new int* [dim1];
    for (int i = 0; i < dim1; ++i) {
       feld[i] = new int [dim2];
    }
    
    Zum Freigeben gehst Du rueckwaerts vor:
    Code:
    for(int i = 0; i < dim1; ++i) {
      delete[] feld[i];
    }
    delete [] feld;
    
     
Thema:

Fehler: cannot convert `int (*)[2]' to `int**' in initialization

Die Seite wird geladen...

Fehler: cannot convert `int (*)[2]' to `int**' in initialization - Ähnliche Themen

  1. sudo Fehler: cannot connect to X server

    sudo Fehler: cannot connect to X server: Hallo, bekomme immer den Fehler raus: cannot connect to X server wenn ich z.B.: sudo wpa_gui eingebe. Hier die Zeile aus meiners...
  2. SuSE 10.2 : Cannot find the image Installationsfehler

    SuSE 10.2 : Cannot find the image Installationsfehler: Hallo zusammen! ich habe folgendes Problem bei der Installation von OpenSuse Linux 10.2. Ich habe mir die .iso Datein gesaugt und auf 5 CDs...
  3. E/A-Fehler (.snapshots is not a btrfs subvolume).

    E/A-Fehler (.snapshots is not a btrfs subvolume).: Hallo zusammen, ich habe mir nun einmal OpenSuse angeschaut da mir das Rolling Realease doch sehr zusagt. Ich habe bei der Installation ein...
  4. LibreOffice veranstaltet Fehlersuche

    LibreOffice veranstaltet Fehlersuche: Das LibreOffice-Projekt hat zur Fehlersuche in LibreOffice 7.0 aufgerufen, das in diesen Tagen als erste Alphaversion erscheinen wird. Die Aktion...
  5. Tails 3.15 behebt kritische Fehler

    Tails 3.15 behebt kritische Fehler: Tails 3.15 schließt unter anderem einige kritische Sicherheitslücken und behebt bereits länger bestehende Fehler. Weiterlesen...
  1. Diese Seite verwendet Cookies um Inhalte zu personalisieren. Außerdem werden auch Cookies von Diensten Dritter gesetzt. Mit dem weiteren Aufenthalt akzeptierst du diesen Einsatz von Cookies.
    Information ausblenden