PDA

View Full Version : [VS C++]Run-Time Check Failure #2 - Stack around the variable 'c_a' was corrupted.


dupa
14-07-2005, 12:47
Con Visual Studio C++ (VS .NET 2003)

quando eseguo un app. (un .exe da console) con la configurazioen Debug mi salta fuori questo errore:

Run-Time Check Failure #2 - Stack around the variable 'c_a' was corrupted.

se invece faccio il Build con la configurazione Release e eseguo non mi salta fuori questo errore.

Insomma.. sto sviluppando un app. da console C++ e mi trovo a dovere usare un codice piuttosto incasinato che non ho scritto io.. e non possibilità e tempo di riscriverlo.

Viene fatto pesante uso di grosse variabili, array, matrici e di tutto di più senza alcuna attenzione all'allocamento, deallocamento dalla memoria...

Insomma credo proprio che questo problema sia dovuto a qualche problema di gestione della memoria..

C'è qualche modo di espandere la memoria che l'applicazione usa in modo da darle molto spazio a disposizione??

L'applicazione è una roba da console MS-Dos.

una cosa del tipo
pippo.cpp

int main() {
cout << "hello world";
return 0
}

In realtà in modalità Release l'app. gira sembra correttamente però vorrei poter risolvere il problema alla radice capendo esattamente di cosa si tratta e se si tratta di poca memoria a disposizione vorrrei dargliene di più a disposizione.

thanks

fek
14-07-2005, 13:24
Hai array allocati sullo stack?

Tipo:


int MyFunction()
{
int myArray[10];

for (int i = 0; i < 20; ++i)
{
myArray[i] = 0;
}
}


E' un buffer overflow su un array allocato sullo stack. Al 99% hai un problema di questo tipo.

Se indenti per bene il codice, e lo posti qui, non dovrebbe essere difficile scovarlo ad occhio. Non dimenticare di racchiudero col tag [ code ].

dupa
15-07-2005, 12:27
Hai array allocati sullo stack?

Tipo:


int MyFunction()
{
int myArray[10];

for (int i = 0; i < 20; ++i)
{
myArray[i] = 0;
}
}


E' un buffer overflow su un array allocato sullo stack. Al 99% hai un problema di questo tipo.

Se indenti per bene il codice, e lo posti qui, non dovrebbe essere difficile scovarlo ad occhio. Non dimenticare di racchiudero col tag [ code ].


Il codice son oltre 7000 righe quindi è un po' dura cercare.. cmq grazie per il suggerimento provo a trovarlo!

thanks