C++ Fragen | Arrays & struct

06/15/2011 17:38 Aimbot.#1
Und zwar habe ich 2 Fragen!
Arrays:
Quote:
(RICHTIG)
int var[3];
var[1] = 4;
var[2] = 8;
cout << var[1] << endl;
cout << var[2] << endl;
Quote:
(FALSCH)
int var[2];
var[5] = 4;
var[8] = 8;
cout << var[5] << endl;

FEHLERMELDUNG:
warning C4789: Das Ziel der Speicherkopie ist zu klein.
warning C4789: Das Ziel der Speicherkopie ist zu klein.
(Es kommt dieser Fehler, aber ich kann es trozdem aufrufen. häää?)
--------------------------------

struct:
Quote:
struct Soldat{
int var;
};
int main() {
struct Soldat Peter;
Peter.var = 3;
cout << Peter.var << endl;
system("Pause");
return 0;
}
//(main-funktion) Warum muss ich bei "struct Soldat" noch Peter hinzufügen damit es was ausgibt? Warum kann es nicht einfach heißen( in der main-funktion)
struct Soldat; - und zum aufrufen ( Soldat.Var = 5; )
}
06/15/2011 18:01 xNopex#2
Quote:
(Es kommt dieser Fehler, aber ich kann es trozdem aufrufen. häää?)
Es ist kein Fehler, sondern "nur" eine Warnung des Compilers. Du greifst auf das 6te und 9te Element des Arrays zu, obwohl es nur 2Elemente lang ist. Da wird sonstwas passieren, wenn du das Programm ausführst.

Quote:
Warum muss ich bei "struct Soldat" noch Peter hinzufügen damit es was ausgibt? Warum kann es nicht einfach heißen( in der main-funktion)
struct Soldat; - und zum aufrufen ( Soldat.Var = 5; )
Lern die Sprache? Du musst natürlich erst ein Objekt der Struktur erzeugen, um dann auf die Strukturelemente des Objekts zugreifen zu können. Wie soll das sonst funktionieren? Bevor du jetzt obercoole, tolle Spiele mit kleinen Soldaten programmieren willst, kauf dir ein Buch, les es komplett durch und lerne die Sprache!
06/15/2011 18:11 .BritainAndy#3
Kann man den arrayfehler dort eigentlich als Overflow error bezeichnen?

No spam:
Und zu dem struct, wie nope schon sagte, du erstellst ja die stuktur Soldat und damit du auf die strukturelemente(also die sachen in der struktur- bei dir int var) zugreifen kannst, musst du ein Objekt der struktur erstellen (also bei dir 'Peter') Sonst funktioniert das nicht so ganz.. am besten ist du guckst dir dazu nochmal die grundlagen an : [Only registered and activated users can see links. Click Here To Register...] [Only registered and activated users can see links. Click Here To Register...] oder highscore.de.. oder du kaufst dir, was ich dir sehr empfehlen kann damit du immer mal wieder sachen schnell nachschlagen kannst ein buch
06/16/2011 15:01 ZackBlack#4
Quote:
Originally Posted by .BritainAndy View Post
Kann man den arrayfehler dort eigentlich als Overflow error bezeichnen?
Denk schon: (zitat) Im Wesentlichen werden bei einem Pufferüberlauf durch Fehler im Programm zu große Datenmengen in einen dafür zu kleinen reservierten Speicherbereich, den Puffer, geschrieben, wodurch nach dem Ziel-Speicherbereich liegende Speicherstellen überschrieben werden. Das passiert jedenfalls (glaub ich halt).