Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: cpp memoria estesa

  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    19

    cpp memoria estesa

    ciao a tutti...
    vorrei sapere se esiste un comando che mi permetta di utilizzare più di 32 MB su una macchina che ovviamente abbia la possibilità hw di farlo....
    ambiente linux
    se eseguo g++ -o ciao ciao.cpp... nel caso io voglia allocare un array di 10mln di interi mi fa compilare senza dare errori
    poi quando eseguo invece mi da :
    Errore di segmentazione (core dump creato)...
    Any idea?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    32 M ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    19
    per provare test questo... si parla di poter usare 10 mln di bool .....
    ... programmino che calcola numeri primi da 1 a n...

    /*serie_primi.cpp*/

    #include <iostream>
    #include <algorithm>
    #include <cmath>

    using namespace std;

    void sieve(int n,bool prime[])
    {int i;
    for(i=0;i<n;i++) prime[i]=true;
    prime[0]=false;
    prime[1]=false;
    int m=sqrt(n);
    for (int i=2; i<=m; i++)
    if (prime[i])
    for (int k=i*i; k<=n; k+=i)
    prime[k]=false;


    }
    int main(){int io,i; bool p[10000000];
    io=10000000;
    sieve(io,&p[0]);
    for(i=0;i<io;i++) if (p[i]==true)cout<<i<<"\n";

    return 0;}

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    In questo modo allochi il vettore nello stack e hai un crash.

    Scrivi

    bool p[10000000];

    fuori dal main, oppure alloca dinamicamente il vettore.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    19
    grazie... non pensavo che ci fosse un limite diverso..
    in realtà non avevo neanche uno stack proprio.... pirla io che non la vedevo coma un funzione
    ... quindi il limite dello stack di ogni fun quanto diventa di base?

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da Pater92
    grazie... non pensavo che ci fosse un limite diverso..
    Beh, ovviamente ... lo stack è una cosa, l'heap un'altra ...

    in realtà non avevo neanche uno stack proprio....
    In che senso? Il programma, per ogni funzione, uso lo stack del processo.

    ... quindi il limite dello stack di ogni fun quanto diventa di base?
    Dipende dalle impostazioni del linker. E' variabile ma impostabile.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    19
    ok sto seguendo una lezione e sono mezzo stanco ma hai risposto alla domanda egregiamente...
    ... tralasciando il desiderio di impostare lo heap del processo.....
    ho tentato con 10mld di bool e teoricamente avendo 4GB di memoria dovrei poterlo fare...
    l'errore in questo caso mi viene dato in fase di compilazione

    serie_primi.cpp: In function ‘int main()’:
    serie_primi.cpp:21:5: warning: overflow in implicit constant conversion [-Woverflow]
    /tmp/cccGAPmh.o: In function `__static_initialization_and_destruction_0(int, int)':
    serie_primi.cpp:(.text+0x144): relocation truncated to fit: R_X86_64_32 against `.bss'
    serie_primi.cpp:(.text+0x153): relocation truncated to fit: R_X86_64_32 against `.bss'
    collect2: error: ld returned 1 exit status

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    10 miliardi penso sia fuori dal range del tipo int
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2012
    Messaggi
    19
    con mio sommo dispiacere ho infine notato che
    viene allocato 1 byte per un bool mentre in teoria abbisognerebbe di un solo bit
    TREAD CHIUSO

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Pater92
    con mio sommo dispiacere ho infine notato che
    viene allocato 1 byte per un bool mentre in teoria abbisognerebbe di un solo bit
    TREAD CHIUSO
    Usare un bit set? http://msdn.microsoft.com/en-us/libr...=vs.71%29.aspx
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.