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)