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)

Antwort per Email an