Fehler: cannot convert `int (*)[2]' to `int**' in initialization
-
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*)
(edit: ausversehentlich falsches forum erwischt, aber post l;schen geht nicht, daher bitte verschieben :()
-
es gibt kein new[][]-Operator in C++. Du musst einmal new[] für den "äußeren Speicher"-aufrufen und dann für jedes innere Element noch einmal new[] (und entsprechend delete[]).
Schau dir vielleicht mal boost::multi_array an.
btw. warum falsches Forum?
-
-
rüdiger schrieb:
es gibt kein new[][]-Operator in C++. Du musst einmal new[] für den "äußeren Speicher"-aufrufen und dann für jedes innere Element noch einmal new[] (und entsprechend delete[]).
Das ist einfach falsch!
Hätte der OPint (*fildes)[2] = new int[sequenz_laenge-1][2];geschrieben, bekäme er kene Fehlermeldung mehr - new liefert im konkreten Fall als Zeiger int(*)[2] und nicht int** .
:xmas1: