This application has requested the runtime...

Lo -  
 Lo -
Bonjour,
J essaye actuellement de programmer la transformée de Hough en C. Le but est de reconnaitre les lignes blanches d'une route dans une image.
Voila mon probleme. J ai crée une matrice accumulateur comme suit:

------------------------------------------------------------------------------------------
int **accumulateur= new int*[m_FacteurEtalement];
for(lala=0;lala<m_FacteurEtalement;lala++) {
accumulateur[lala] = new int[m_FacteurEtalement];
}

.....

for(lala=0;lala<rmax;lala++){ // et non for(i=0;i<m_TailleCode;i++)
delete accumulateur[lala]; // et non delete [] Matrice[i];
}
delete [] accumulateur;
------------------------------------------------------------------------------------------

Cela compile mais comme j ai besoin d'une deuxieme matrice , j'ai copié exactement les mêmes lignes en remplacant accumulateur par accumulateur2 . Cela compile toujours, mais quand je lance mon programme j obtient un "this application has requested the Runtime to terminatenit in an unusual way."

je ne comprend pas pourquoi je n' ai le droit de créer qu'une seule matrice et pas deux...
Si quelqu'un a une idée et un peu de temps s'il vous plait! Help!!!!

Merci!
A voir également:

4 réponses

Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
Tu as du faire une cagade quelque part. Donne ton code.
Il n'y a pas de raison que ça ne fonctionne pas, sauf si ta matrice est vraiment énorme (genre tu satures la RAM)
0
Lo
 
Merci pour ta reponse rapide!!!
Tu as raison, j avais fait une matrice trop grande ( m_FacteurEtalement=20000)
Mais je pensais que l'ordinateur avait une plus grande mémoire!!!

Merci encore pour ton aide!!
0
Char Snipeur Messages postés 10112 Date d'inscription   Statut Contributeur Dernière intervention   1 299
 
un int prend 4 octet (classiquement). Chaque matrice prend au moins (2.10^4)²=4.10^8 octet
si tu en as deux ça fait 8.10^8 octet soit presque 1 Go de mémoire. Et encore l'estimation est faite en estimant que la mémoire est continue etc.
En règle général , mais en particulier dans ton cas, il faut tester la valeur de retour de new pour vérifier que tout s'est bien passé.
0
Lo
 
Waou! Thanks!!! ^^
0