Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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: 6403
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: 969
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 !

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:

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