Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con array dinamico multidimensionale
Forum - C/C++ - Problema con array dinamico multidimensionale

Avatar
drewnik99 (Normal User)
Pro


Messaggi: 69
Iscritto: 28/03/2008

Segnala al moderatore
Postato alle 13:01
Domenica, 28/10/2012
Dichiaro un array dinamico multidimensionale grande 65536 * 65536, ma il programma non riesce ad inizializzare l'intero array.

Ecco il codice:
Codice sorgente - presumibilmente C/C++

  1. int** array = (int**)malloc(sizeof(int*) * 65536);
  2.  
  3. for(int i = 0; i < 65536; i++)
  4. {
  5.     array[i] = (int*)malloc(sizeof(int) * 65536);
  6. }
  7.  
  8. for(int x = 0; x < 65536; x++)
  9. {
  10.     for(int y = 0; y < 65536; y++)
  11.     {
  12.         array[x][y] = 0   //mio_valore, 0 come esempio
  13.     }
  14. }



Qualche suggerimento?
Grazie in anticipo per le risposte.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 5714
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 14:41
Domenica, 28/10/2012
Non puoi allocare 17 giga di memoria !

Quando sia alloca della memoria, devi controllare che ogni puntatore restituito dalla malloc sia diverso da NULL. Altrimenti l'allocazione è fallita.


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 967
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 14:43
Domenica, 28/10/2012
Prova a dimensionare una matrice più piccola.

Se non sbaglio, tu stai tentando di allocare ben 16 GB !


Nulla va più veloce della luce, quindi rilassati.
PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 15:39
Domenica, 28/10/2012
ahahahah! ..a meno che il tuo obiettivo non fosse quello di mandare in palla un server :nono:


Il mio canale: http://www.youtube.com/user/MrDukeCarl

tecnologia e programmazione!
PM Quote
Avatar
drewnik99 (Normal User)
Pro


Messaggi: 69
Iscritto: 28/03/2008

Segnala al moderatore
Postato alle 14:38
Mercoledì, 31/10/2012
Testo quotato

Postato originariamente da nessuno:

Non puoi allocare 17 giga di memoria !

Quando sia alloca della memoria, devi controllare che ogni puntatore restituito dalla malloc sia diverso da NULL. Altrimenti l'allocazione è fallita.



Sul momento non ci avevo pensato.

Risolto, grazie a tutti per l'aiuto.

PM Quote