2017-04-19 1 views
0
int main() 
{ 
    int ** ary; 
    ary = new int*[3]; 
    int i; 
for(i = 0; i < 3; ++i) 
{ 
    ary[i] = new int[4]; 
} 

for(int i = 0; i < 3; ++i) 
    { 
    delete [] ary[i]; 
} 
delete [] ary; 


    return 0; 
} 

Es sieht ziemlich einfach aus, aber ich habe einen Fehler bei der Kompilierung mit Code-Blöcken. Fehler: 'neu' undeklariert (erste Verwendung in dieser Funktion) Alle Vorschläge sind willkommen. Vielen Dank.2D-Array mit ** p

Antwort

0

Übersetzen Sie mit einem C++ - Compiler? "Neu" ist ein C++ - Schlüsselwort. Wenn Sie in C kompilieren, verwenden Sie stattdessen malloc().

+0

Danke für Ihre Hilfe. Der Compiler ist GNU GCC Compiler. Gestern ist ein anderer ähnlicher c-Code in Ordnung, der ohne den "delete" -Teil ist. Heute wird etwas komisch. Ich bin ein Newie und folgte ein paar Vedio auf Youtube. https://www.youtube.com/watch?v=868qXWoGS9E –

+0

Ich sage, dass "neu" und "löschen" sind für C++, und nicht für C. Versuchen Sie etwas wie das: #include #include Int Haupt (void) { \t int ** ary; \t ary = (int **) malloc (3 * sizeof (int *)); \t int i; \t for (i = 0; i <3; ++ i) \t { \t \t ary [i] = (int *) malloc (sizeof (int)); \t } \t for (i = 0; i <3; ++ i) \t { \t \t freie (ary [i]); \t} \t frei (ary); \t zurück 0; } – Kirby

+0

Ich habe es versucht und es hat funktioniert. Aber ich kann immer noch nicht glauben, dass ich gestern ein Projekt mit c-on-code-Blöcken erstellt habe, und ich habe einen Fehler mit "new" gemacht, aber es funktioniert gestern aber nicht heute. Danke für Ihre Hilfe. –

Verwandte Themen