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

Discussione: Matrici in C++

  1. #1

    Matrici in C++

    Sono un novizio del C++ e scrivendo del codice ho provato ad inizializzare una matrice [500]x[500] di double: in esecuzione il programmino termina bruscamente a causa di un "stack overflow"

    Se mi dovesse servire una matrice più grande, come posso fare

    Grazie in anticipo

  2. #2
    prova a linkare con l'opzione /STACK:3145728 in modo da creare uno stack da 3MB invece del classico 1MB (la tua tabella richiede un po meno di 2 MB)

    Hai scartato consapevolmente la possibilità di allocare dinamicamente la memoria dal sistema operativo?

  3. #3

    [C++] chiarimenti su allocazione

    No, non ho scartato tale possibilità. Ma l'allocazione dinamica mi permetterebbe di avere più memoria a disposizione?

    Grazie in anticipo!

  4. #4
    tutta quella che il sistema ti può concedere, molta di + di quella che il linker alloca sullo stack.

  5. #5
    Originariamente inviato da Andrea Simonassi

    Hai scartato consapevolmente la possibilità di allocare dinamicamente la memoria dal sistema operativo?
    Sono le liste o sbaglio???
    (se ho cannato mi fustighero)
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  6. #6

  7. #7
    Originariamente inviato da Andrea Simonassi
    tutta quella che il sistema ti può concedere, molta di + di quella che il linker alloca sullo stack.
    Scusa se sono insistente, ma così mi tocca quindi lavorare con i puntatori (era un'opzione che volevo evitare!)? Oppure posso allocare dinamicamente un intera matrice (e in questo caso la gestione degli indici è quella solita delle matrici in allocazione statica o è diversa)?

    Grazie ancora!

  8. #8
    se sai a priori la dimensione della matrice nessuno ti vieta di lavorare con lo stack , anzi dovresti guadagnare qualcosa come prestazioni (un inezia comunque).

    se proprio ti scoccia toccare lo stack ...

    double (*m)[500] = new double[500][500];

    ....

    delete [] m;

  9. #9
    In realtà mi piacerebbe vedere come inizializzi la matrice perche' secondo me sta li l'errore e non nell'utilizzo dello stack (mi puzza parecchio di strano, a meno che non stai utilizzando un compilatore 'for dummies'). Su che ambiente stai sviluppando?
    Dai info. piu' precise

    bye
    There are 10 kinds of people in the world: who knows the binary numeration and who not

  10. #10
    Originariamente inviato da TheGreatWorld
    In realtà mi piacerebbe vedere come inizializzi la matrice perche' secondo me sta li l'errore e non nell'utilizzo dello stack (mi puzza parecchio di strano, a meno che non stai utilizzando un compilatore 'for dummies'). Su che ambiente stai sviluppando?
    Dai info. piu' precise

    bye
    Utilizzo Visual Studio 6.0, ma la cosa strana è che spostando la dichiarazione della matrice da locale (all'interno del main) facendola diventare una variabile globale, non ho più problemi sulla dimensione: ho provato con una [5000]x[5000] e tutto è andato a posto!

    Qualcuno mi sa spiegare il perchè?

    --------------------------------------------------
    ...non esiste sogno troppo grande,
    nè sognatore troppo piccolo...

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.