Dude (./27) :
./26 > T'es sûr Zephir ?
Gros mauvais que je suis ca m'étonnerai pas remarque
Mais je pensais qu'en écrivant ca :
while ( i++ < LIGNES)
la post-incrementation se faisait apres évaluation de l'expression ce qui reviendrait a écrire while (i < LIGNES) puis qu'apres i était incrémenté
(tout comme pour les 'for')
Bah oui c'est le cas, mais si je prends une de tes boucles :
for ( i = 0; i++ < LIGNES ; )
{
matrice[i] = malloc(sizeof **matrice * COLONNES);
}
La boucle for commence, i vaut 0. Le test est effectué, i vaut 0 donc le test est vrai, puis i est incrémenté : i vaut 1 quand le premier cycle commence.
De même, au dernier cycle : i vaut LIGNES - 1, le test est vrai, puis i est incrémenté. Tu rentres dans la boucle avec i = LIGNES.
Au final, ta boucle a tourné pour i = 1 à LIGNES au lieu de 0 à LIGNES - 1 : tu loupes l'indice 0, mais plus grave, tu dépasses de ton tableau au dernier tour de boucle.