Hallo, bitte schlagt mich nicht wenn das hier eine unqualifizierte Frage sein sollte...
Das folgende kleine Programm soll mir zeigen, wieviel Platz ein char-Array auf dem Stack tatsächlich belegt...
#include <iostream>
using namespace std;
main()
{
int b;
char a[97];
cout << ((unsigned) &-((unsigned) &a) << endl;
}
[/code]
Auf einem Athlon 1400 mit gcc-2.95.4 kompiliert wird beispielsweise "100" ausgegeben, wie ich es erwartet hatte, da 97 chars ebend 97Bytes belegen und dann noch auf ganze dwords "aufgerundet wird".
Mit gcc-3.3.4 dagegen wird "124" ausgegeben, es werden also offenbar 24Bytes verschwendet.... ist das so geplant; wenn ja, warum?
Grüße, atajh