001
10.11.2003, 23:55 Uhr
Hans
Library Walker (Operator)
|
Zitat: |
~landus postete Hallo,
ich habe eine Frage zu Arrays unter Dos. Unter 32Bit Sytemen ist die Grösse eines Arrays ja nur durch des Speichers begrenzt...
Wie ist das bei Dos? Also wenn ich ein int Array[2000] anlege bekomme ich zwar vom compiler keinen Fehlér aber da steht dann nur "müll" drin. Ein int Array[1000] macht dagegen keine probleme.
|
Ob in dem Array Müll drin steht oder nicht, hängt nicht von der Grösse ab, sondern davon, ob Du es initialisierst oder nicht. Das macht der Compiler nämlich nicht. Nehmen wir also mal an, das Programm sieht etwa so aus
C++: |
#include <stdio.h>
int main() { int t, array[1000];
for(t=0; t<1000; t++) printf ("%d\n", array[t]);
return 0; }
|
Wenn Du dieses Programm so ablaufen lässt, liefert es Dir auch nur Müll, weil in dem Array irgendwas drin steht, das noch keinerlei Bedeutung hat. Eben das, was dort im Speicher steht, wo der Compiler das Array hingelegt hat. Wenn Du da einen sinnvollen Inhalt drin haben willst, musst Du es vorher initialisieren, d.h. mit Inhalt füllen, der für den weiteren Gebrauch einen Sinn ergibt. In der regel schreibt man dazu lauter Nullen darein, also so:
C++: |
#include <stdio.h>
int main() { int t, array[1000];
for(t=0; t<1000; t++) /* Array initialisieren; hier mit Nullen füllen */ array[t] = 0;
for(t=0; t<1000; t++) printf ("%d\n", array[t]);
return 0; }
|
So liefert Dir das Programm 1000 Nullen. Und für weiteren Gebrauch hat das Array einen definierten Inhalt.
Hans -- Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung. |