Strano comportamneto di g++ sotto Linux e di Dev-C++

di il
1 risposte

Strano comportamneto di g++ sotto Linux e di Dev-C++

Salve a tutti,
Stranamente il programma che segue funziona regolarmente compilandolo con g++ 4.2 e con dev c++ beta 5 beta (4.9.9.2):
#include <iostream>
using namespace std;
int main(int argc, char** argv)
{
	int i,j;
	cin >> i;
	float vet[i];

	for (j=0;j<i;j++){
		cout <<"vet["<<j<<"] = ";
		cin >> vet[j];
	}
	cout << endl;
	for (j=0;j<i;j++){
		cout << vet[j]<<endl;
	}
	return 0;
}

il vettore è una struttura statica; nella dichiarazione occorre una costante e non una variabile intera.
Grazie in anticipo
Ciao a tutti

1 Risposte

  • Re: Strano comportamneto di g++ sotto Linux e di Dev-C++

    Hai commesso gravi errori:
    float vet;
    non dovrebbe funzionare. Non puoi instanziare un array di i(variabile) elementi. La i è una variabile.
    int i,j;
    cin >> i;
    float vet;

    ma dovresti sapere che le varibili vengono instanziate tutte insieme a prescindere dall'ordine in cui sono state scritte.
    Quando parte la procedura vengono instanziate le variavbili i,j e vet. Dopo inizia il codice quindi l'inizializzazione della variabile i.
    Se vuoi creare un array dinamicamente in c++ devi fare cosi:

    int i,j;
    float *vet;

    cin >> i;
    vet = new float;
Devi accedere o registrarti per scrivere nel forum
1 risposte