array problem!
-
folgender code:
#include <stdio.h> #include <conio.h> int main(){ int m=0, n=0; scanf("%d %d", &m, &n); double m_1 [m] [n]; getch(); return 0; }
jetzt mecker der compiler (visual studio .net 7) an der arrayerstellung:
konstanter ausdruck erwartet, und reservierung eines arrays der konstanten größe 0 nicht möglich.andere compiler haben das gefressen, was mach ich falsch?
-
Kein MFC-Problem
2.andere compiler haben das gefressen, was mach ich falsch?
Sicherlich keine C-Compiler!
-
Hallo,
der Compiler erwartet einen konstanten Ausdruck. Also sowas wie 'const int m = 1; const int n = 2;'
Was du haben willst ist sowas wie ein dynamisches array, da kannst du mal im C oder C++ Forum fragen.
Für 1-dimensionale Arrays kannst du folgendes machen:
//m ist von der console bereits eingelesen double* m_l; m_l = (double*)malloc(sizeof(double)*m); //Element-Zugriff wie beim array: m_l[i] = ... //Programm-Ende free(m_l);
Mehr-Dimensionale Felder gehen so natürlich auch, man muß dann eben ein bischen mit den indizees rechnen.
Achja und Größe 0 geht nicht, weil 0 nichts ist
. Du brauchst mindestens 1 Element. Und nicht vergessen: bei n Elementen erfolgt der Zugriff mit 0...(n-1).
Gruß mathi
[ Dieser Beitrag wurde am 12.12.2002 um 12:34 Uhr von mathi editiert. ]
-
Hi ...
Weise erst einmal einen Wert größer
0 zu, also
int m=1 , n=1;und weise dann erst diesen neue Werte zu.
bis dann
klaus