Größe/Speicherplatz von Arrays
-
Moin moin,
ich bin auf dem Weg c++ zu erlernen. Nun habe ich ein kleines Problem mit Arrays. Mich interessiert die Größe die ein float bzw. ein integer Array (größe 10 x 10) benötigt. Dafür habe ich mir nun ein kleines Programm geschrieben. Das Problem welches nun auftaucht ist, dass mir die größe eines Integer und eines float Wertes zurückgegeben wird. Sieht jemand den Fehler?
#include<iostream>
using namespace std;int main()
{
const int Test = 10;int Integer[Test][Test];
double Double[Test][Test];
float Float[Test][Test];cout<<sizeof (Integer[Test][Test])<<endl;
cout<<sizeof (Double[Test][Test])<<endl;
cout<<sizeof (Float[Test][Test])<<endl;return 0;
}
-
#include<iostream> int main() { using namespace std; const int Test = 10; int Integer[Test][Test]; double Double[Test][Test]; float Float[Test][Test]; cout << sizeof(Integer) << endl; cout << sizeof(Double) << endl; cout << sizeof(Float) << endl; return 0; }Wenn du Integer[Test][Test] schreibst, dann entspricht das genau einem Integer im 2D Array

Grüssli
-
Vorsicht auch bei Zugriffen.
Wenn du deine Arrays so erstellstint Integer[Test][Test]; double Double[Test][Test]; float Float[Test][Test];Dann geht der Wertebereich jeweils nur bis 9 ...
Der Wert hinter
Integer[Test][Test] = ...; // Integer[10][10]wäre undefiniert bzw schreibst du in Speicher der nicht dir gehört.
Gruß
Sascha
-
Das klingt ziemlich logisch, hät ich auch selber sehen können :-). Aber irgendwie kommt man manchmal einfach nicht drauf.
Vielen Dank!!
@ Sascha: Stimmt natürlich! Das Buch mit dem ich lerne hat mich auch schon vor solchen Fehlern gewarnt
