C++ mag mich nich!!

zed

Mitglied
was ist bitte schön an diesem text falsch???

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#define SizeX 15
#define SizeY 15
main(){
bool World[SizeX][SizeY];
int value,x,y = 0;
for (y = 0; y <= SizeY; y++){
for (x = 0; x <= SizeX; x++){
srand(time(0));
value = rand() % 3;
if(value < 2){
World[x][y] = false;
} else{
World[x][y] = true;
}
}
}
for (y = 0; y <= SizeY; y++){
for (x = 0; x <= SizeX; x++){
if(World[x][y] = false){
cout << "0";
} else{
cout << "1";
}
if(x = SizeX){
cout << "\n";
}
}
}
cout << "Compilierung erfolgreich!\n";
}

Erlkärung: Ein Feld(15x15) soll zufällig Koordinaten mit 0 oder 1 belegen und ausgeben.
also der compiler merkt nix, ich auch nicht :(
aber dafür meckert windows gewaltig
Weiss jemand die Lösung???
 

Robert Martinu

Erfahrenes Mitglied
Original geschrieben von zed
was ist bitte schön an diesem text falsch???

#define SizeX 15
#define SizeY 15
main(){
bool World[SizeX][SizeY];
for (y = 0; y <= SizeY; y++){
for (x = 0; x <= SizeX; x++){

Erlkärung: Ein Feld(15x15) soll zufällig Koordinaten mit 0 oder 1 belegen und ausgeben.
also der compiler merkt nix, ich auch nicht :(
aber dafür meckert windows gewaltig
Weiss jemand die Lösung???

Du definierst World als ein Array mit 15x15=225 Feldern,
um von 0 bis 15 hochzuzälen muss 16 mal inkrementiert werden, die Schleife wird also 256 mal durchlaufen...und das Ergebnis in einen nicht reservierten Speicherbereich geschrieben.

mit
for(y=0;y<SizeY;y++)
passt wieder alles