PDA

Visualizza la versione completa : Problema: Stack around the variable 'mioarray' was corrupted!


gaten
30-11-2008, 12:42
Salve ragazzi ho questo problema...
Quando eseguo questo programma:

{
int a, i;

cout << "Inserisci il numero che dovrebbe essere presente nell'array:\n";
cin >> a;

int mioarray[3];
mioarray[0] = 32;
mioarray[1] = 10;
mioarray[2] = 7;
mioarray[3] = 8;

for ( i = 0; i <= 3; i++ ) {

if (mioarray[i] == a) {

cout << "Il valore " << a << " e' presente nell'array, precisamente nell'indice: mioarray[" << i << "]";

break;

} else {

cout << "Spiacente il numero che hai inserito non e' presente nell'array";

break;

}

}

return 0;
}

Mi da un errore del tipo:

STACK AROUND THE VARIABLE 'MIOARRAY' WAS CORRUPTED!

Come posso risolvere? Grazie anticipatamente!

oregon
30-11-2008, 12:47
Gli elementi sono 4 ...

int mioarray[4];

gaten
30-11-2008, 12:50
E' stranissimo, perchè se inserisco 32 che sarebbe mioarray[0]... mi funziona correttamente cioè mi trova il numero nell'array, se insierisco gli altri non funziona mi da sempre "Spiacente...".
come mai?

oregon
30-11-2008, 12:55
Se usassi i tag CODE per mostrare il codice in modo da renderlo leggibile, sarebbe meglio ...

Hai scritto



for ( i = 0; i <= 3; i++ )
{
if (mioarray[i] == a)
{
cout << "Il valore " << a << " e' presente nell'array, precisamente nell'indice: mioarray[" << i << "]";
break;
}
else
{
cout << "Spiacente il numero che hai inserito non e' presente nell'array";
break;
}
}


Scritto in questo modo, non funzionera' mai come vuoi, perche', se il numero non e' nell'array, lo puoi sapere solo dopo la fine della for e non al suo interno ...

gaten
30-11-2008, 13:01
Ho risolto! Grazie mille, un'ultima cosa vedi nel for io ho inserito i<3... non potrei mettere i<coutnomearray... magari una funzione che mi permette di sapere quanti valori contiene la mia array...?

oregon
30-11-2008, 13:06
Il numero di elementi e' dichiarato con una costante ... quindi

#define MAXARRAY 4

...

int mioarray[MAXARRAY];

...

for ( i = 0; i < MAXARRAY; i++ ) {

Loading