|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 637
|
[C] Limite per creazione array multidimensionale
Avrei bisogno di operare con dei vettori bidimensionali di dimensione abbastanza abbondante e per ora ho scritto del codice simile :
Codice:
#define MAXCAR 100
#define MAXNODE 710
struct Istanza{
char NAME[MAXCAR];
char TYPE[MAXCAR];
char COMMENT[MAXCAR];
int DIMENSION;
char EDGE_WEIGHT_TYPE[MAXCAR];
struct Node NODI[MAXNODE];
int EDGE_WEIGHT[MAXNODE][MAXNODE];
};
Credo dipenda dall'allocazione di memoria, ma non riesco a capire come fare a farla in maneira corretta...
|
|
|
|
|
|
#2 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Dipende molto da quanti dati devi gestire. Potresti aumentare MAXNODE. Ma poi appunto, dipende da come gestisci la struttura struct Istanza. Se invece devi poter gestire un array bidimensionale di qualunque dimensione, devi gestire la matrice allocandola in modo dinamico, così da poterla espandere se necessario.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 637
|
La variabile di tipo "Istanza" utilizzata nel programma è una sola...
Dove devo allocare la memoria necessaria ai due array della struttura? Nel momento in cui creo la variabile di tipo struct Istanza? |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Poi però ti conviene allocare dinamicamente la memoria per una variabile di tipo struct Istanza. Codice:
struct Istanza *pIstanza; ... pIstanza = (struct Istanza*) malloc (sizeof (struct Istanza));
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Oct 2000
Messaggi: 637
|
In effetti avevo definito una variabile di tipo "struct Istanza I", definendola "struct Istanza *I" e poi allocando la memoria come hai detto tu sono arrivato tranquillamente ad oltre 20000...
Grazie!!! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:11.




















