Wenn ich den fließenden Code bearbeiten:Warum ist neu (*) [2] verboten?
int (*p)[2] = new int [2][2]; //it's right.
int (*q)[2] = new int (*)[2]; //it's wrong.
//the wrong message:error: expected primary-expression before ')' token.
//compile by g++ in Code::Blocks,Debug.
kann ich die ersten verstehen. Aber warum kann der zweite nicht funktionieren?
Wie stimmt der Compiler mit dem Typ überein? Offensichtlich passt es nicht wie die allgemeine Bedingung, und es muss einige Grenzen für neue geben. Ich glaube, ich ignoriere einige Prinzipien.
Was denkst du (*)? oder sollte es tun? – Hayt
Wenn ich neu einen Zeiger auf ein Array will, muss ich neu int [1] [2]? // Es ist meine andere Idee. – willaty
Ein Zeiger auf ein Array ist 'new int []' Doing [2] [2] erstellt ein Array (der Größe 2) von Arrays (der Größe 2) –
Hayt