ldf91 Inviato 1 Marzo 2013 Condividi Inviato 1 Marzo 2013 Salve a tutti ragazzi, Ho bisogno di un aiuto in quanto il problema che sto per esporvi non è spiegato in maniera esaustiva nel mio testo e non sono riuscito a trovare qualcosa nemmeno nel web. Il mio problema è il seguente: In una stesura di un programma in c++ ho bisogno di creare all'interno del programma main una variabile di tipo definito da me e composta da vettori di caratteri (char vettore [dim]); Questa variabile poi la devo richiamare in un sotto programma . . .quindi la mia idea, inizialmente, era quella di dichiararmi sia la dimensione che la definizione del tipo in maniera globale;ma visto che ho bisogno di modificare di volta in volta la dimensione del vettore che compone questo tipo il programma di da errore. Girando un pò sul web ho letto che una variabile locale uguale a quella globale, se ridefinisce il valore,oscura la valenza della variabile globale in altre parole se mi dichiaro globalmente la dimensione della stringa uguale a 5 e poi nel programma principale e/o nel sottoprogramma me lo ridefinisco dovrebbe cambiare. . .ma nonostante questo ho provato in tutte le salse ma il programma non ne vuole proprio sapere di partire. Quindi concludo chiedendovi se qualcuno di voi utenti sia ingrato di spiegarmi, attraverso un segmento di programma come esempio, come risolvere la questione. Grazie in anticipo e spero di essere stato abbastanza chiaro XD ciaoooo =D Link al commento Condividi su altri siti Altre opzioni di condivisione...
robilyn Inviato 2 Marzo 2013 Condividi Inviato 2 Marzo 2013 Le variabili globali in generale sono sconsigliate. Se da main() devi richiamare un'altra funzione, potresti passare all'altra funzione l'indirizzo base dell'array e un intero contenente la dimensione. main() { ... int dim = 100; char vettore[dim]; ... funzione(&vettore[0], dim); ... } void funzione(char* array, int dimensione) { ... int i; for (i=0; i<dimensione; i++) array = ... ... } Link al commento Condividi su altri siti Altre opzioni di condivisione...
RyujiAndy Inviato 3 Marzo 2013 Condividi Inviato 3 Marzo 2013 (modificato) scusate mi spiegate dove stanno i vettori? Io vedo solo array e puntatori. // resizing vector #include <iostream> #include <vector> int main () { std::vector<int> miovettore; // setto contenuto: for (int i=1;i<10;i++) miovettore.push_back(i); miovettore.resize(5); miovettore.resize(8,100); miovettore.resize(12); std::cout << "miovettore contiene:"; for (int i=0;i<miovettore.size();i++) std::cout << ' ' << miovettore[i]; std::cout << '\n'; return 0; } Questo é un esempio di vettori in C++ presente in molti libri di testo. Non vedo la necessità di definire la dimensione del vettore perché questà va letta a seconda della dimensione, quindi basta riallocale man mano che sia necessario. Ho inserito la funzione resize perché ritengo che il tuo errore sia proprio li. Modificato 3 Marzo 2013 da RyujiAndy Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Crea un account o accedi per lasciare un commento
Devi essere un membro per lasciare un commento
Crea un account
Iscriviti per un nuovo account nella nostra community. È facile!
Registra un nuovo accountAccedi
Sei già registrato? Accedi qui.
Accedi Ora