DOMANDA Dichiarazione di vettore fuori dal main

Pubblicità

Haidakan

Nuovo Utente
Messaggi
125
Reazioni
2
Punteggio
35
salve, come da titolo, dovrei dichiarare un vettore fuori dal main, quindi globale, il punto e' che se l'indice del vettore e' una variabile anch'essa globale il compilatore mi dice che non e' una costante. Non capisco, facendo le stesse cose nel main funziona benissimo, e l'indice non e' mica una costante. Grazie in anticipo :)
 
Del tipo:
C++:
const int index = 5;
int array[index];
o
C++:
int index;
int array[index];

int main()
{
    std::cin >> index;
}
Perché il secondo ha un grave errore di fondo
 
Ah, del tipo?
La variabile index non è inizializzata con un valore. Quindi ha un valore "casuale".
Cosa non vera per le variabili dichiarate come static o global; tuttavia mi sembra dipenda dallo standard.
Le variabili locali invece danno luogo ad un "undefined behavior", in quanto il valore non è conosciuto (probabilmente un utilizzo come il tuo porta ad un crash).

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
La variabile index non è inizializzata con un valore. Quindi ha un valore "casuale".
Cosa non vera per le variabili dichiarate come static o global; tuttavia mi sembra dipenda dallo standard.
Le variabili locali invece danno luogo ad un "undefined behavior", in quanto il valore non è conosciuto (probabilmente un utilizzo come il tuo porta ad un crash).

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum
Giusto. Tecnicamente nello standard C++ le variabili globali e statiche sono inizializzate a 0.
In ogni caso la dichiarazione del comporterebbe un errore di allocazione visto che l’indice sarebbe 0.
 
C++:
#include<iostream>

using namespace std;

int n=4;
int vet[n];

int main()
{

     cout<<vet[n];

     return 0;
}
 
Pubblicità
Pubblicità
Indietro
Top