This application has requested the runtime...

Fermé
Lo - 18 févr. 2010 à 06:45
 Lo - 18 févr. 2010 à 13:00
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 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
18 févr. 2010 à 08:26
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
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 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
18 févr. 2010 à 12:29
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
Waou! Thanks!!! ^^
0