Initalisiert aber irgendwie doch nicht.
-
Also bei folgendem Code kommt die Fehler meldung dass die Variable "plks" nicht initialisert wurde:
#include <iostream> using namespace std; int main() { int i = 0; int * plks[13]; *plks[0] = 1; *plks[1] = 1; *plks[2] = 1; *plks[3] = 1; *plks[4] = 1; *plks[5] = 1; *plks[6] = 1; *plks[7] = 1; *plks[8] = 1; *plks[9] = 1; *plks[10] = 1; *plks[11] = 1; while (i<11) { (result=result+*plks[i]); i++; }; return 0; }
Woran kann das liegen?
-
EZed schrieb:
Woran kann das liegen?
vorwiegend daran, daß plks nicht initialisiert wurde.
das ist aber nur ein detail und nur die pingeligen compiler bauen deshalb code, der abschmiert.#include <iostream> using namespace std; int main() { int i = 0; int * plks[13]; //plks ist ein array von 13 zeigern auf int *plks[0] = 1; //da, wo der ersze zeiger hinzeigt (er zeigt auf adresse 0x00004711) wird ne 1 reingeschrieben und //weil die die adresse 0x00004711 gar nicht gehört, schmiert die kiste ab. while (i<11) { (result=result+*plks[i]); i++; }; //oh, du willtest nur 11 zahlen addieren? dann hätte int plks[13]; gereicht. //für das array von zeigern auf int mußte jedem arrayelement auch //speicherplatz geben. normalerweise durch new return 0; }
#include <iostream> using namespace std; int main() { int i = 0; int * plks[13]; *plks[0] = new int(1); *plks[1] = new int(1); ... while (i<11) { (result=result+*plks[i]); delete plks[i]; i++; }; return 0; }
oder
#include <iostream> using namespace std; int main() { int i = 0; int plks[13]; plks[0] = 1; plks[1] = 1; ... while (i<11) { (result=result+plks[i]); i++; }; return 0; }
-
lol, die 2. möglichkeit war die erste die ich probiert hab, damals ging sie nicht, jetzt geht sie, jaja c++ is schon ne feine sache
dank dir
-
volkard schrieb:
... int plks[13]; plks[0] = 1; plks[1] = 1; ...
um die tastatur zu schonen...
int plks[] = {1,1,1,1,1,1,1,1,1,1,1,1,1};