Hallo, Deine Frage ist in einer C - Gruppe sicherlich besser aufgehoben.
Achim Fritz <[EMAIL PROTECTED]> writes: > Hi, > > fuer ein Finite-Element-Programm in C, muesste ich unbedingt mehr als 2Gb > Speicher allokieren. Der Rechner hat 2Gb Speicher und 2Gb Swap. > Ich habe erst gedacht, es liegt am Kernel (CONFIG_HIGHMEM ist gesetzt), > habe jetzt aber festgestellt, dass es nicht moeglich ist in C eine Integer > zu deklarieren, die groesser als 2^31 ist. Bezüglich der Größe von Integertypen macht der C - Standard lediglich folgende Zusicherung: char <= short <= int <= long Die tatsächliche Größe ist Systemabhängig und kann über die Headerdatei limits.h erfragt werden. > [EMAIL PROTECTED]:~/ugspeicher/test-proc> cat testint.c > #include <stdlib.h> > > int main(void){ > long long int a=2200000000; > int b=2200000000; > int c=2000000000; > printf("a=%d\n",a); ^^^^ Versuch's mal mit printf("a=%lld\n",a); Ein Blick in die manpage von printf erklärt Dir, warum. Wenn Du mit noch größeren Zahlen hantieren mußt, als unsigned long long zu bieten hat, hilft vielleicht eine "bignum" - library wie libgmp. Ob Du nun aber so große Speicherbereiche allozieren kannst, und ob Dein Programm das wirklich tun muß, bezweifele ich eher. Aber das gehört definitiv in ein anderes Forum. Grüße, Daniel. -- Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/ Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED] mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)