for(j = i+1;i<dimension;j++)
Tu as simplement oublié de remplacer i par j dans la condition d'arrêt. Étant donné que i ne varie pas lors de la boucle, si la condition est vérifiée une fois (ce qui est le cas) alors elle le restera et tu bloucle alors a l'infini ... ou presque vu que tu déborde en mémoire (et pan, SIGSEGV :p).
J'ai vu ça, dans le for que tu as réecrit xD
quel est bête mon erreur ... oui c'est bien j qu'il faut vérifier ... sinon boucle infini puisque le i est planqué au zéro,
je pense que c'est juste parceque je suis un peu fatigué, mais bon, merci beaucoup