Projet en langage C tout simple qui bug -_-'

Résolu
varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

voila, j'ai un projet en C à faire, et des le début j'ai un problème:
j'essaye de remplir un tableau avec des 0, sa marche si le tableau est petit, mais des qu'il est trop grand sa me met une fenetre comme quoi mon projet a cesser de fonctionner, et sa le ferme. Pourtant c'est vraiment tout simple.

Je vous joint le code, qui est vraiment tout petit (je code sous devC++):

#include <math.h>
#include <conio.h>
#include <stdio.h>

//debut: demande des informations
int main(){
//taille du tableau, case de depart de l'insecte ivre
int m, n, bugi, bugj, i, j, nbdeplacement = 0, x;
printf("entrez la taille tu tableau m et n :\n");
scanf("%d%d", &m, &n);
printf("entrez la position de depard du tableau( tableau de taille %d %d) :\n", m, n);
scanf("%d%d", &bugi, &bugj);
//création du tableau
int tab[m][n];
//initialisation des cellules a zero
for (i = 1; i <= m; i++){
for (j = 1; j <= n; j++){
tab[i][j]=0;
}
}
printf("1\n");
//placement de l'insecte
tab[bugi][bugj] = 1;
//lancement du trajet de l'insecte
//à faire
//choix de la nouvelle case:
//à faire
//affichage des resultats
for (i = 1; i <= m; i++){
for (j = 1; j <= n; j++){
printf("| %d ",tab[i][j]);
}
printf("| \n");
}
printf("nombre de deplacement: %d", nbdeplacement);
getch();
return 0;
}

merci de votre aide
--
La vérité appartient à ceux qui la cherchent et non point à ceux qui prétendent la détenir.
(n'oubliez pas de mettre résolu si vous avez trouvé votre   bonheur: pensez aux autres^^')
Configuration: Windows Vista
Firefox 3.0.5

5 réponses

  1. HACKER 712 Messages postés 1463 Statut Contributeur 255
     
    salut !

    essaye des %i au lieu de tous les %d !
    0
  2. varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
     
    sa ne change helas rien :s
    sa bloque se niveau:

    //initialisation des cellules a zero
    for (i = 1; i <= m; i++){
    for (j = 1; j <= n; j++){
    tab[i][j]=0;
    }
    }

    peut etre doit-je changer d'appli pour developer?
    0
  3. Romantic liar
     
    essaie d'enlever le int devant le main() principal
    puis vers la fin, efface le getch()
    ça devrait corriger ton problème
    0
    1. varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
       
      si j'enlève le getch(), sa va fermer la fenêtre direct, j'aurais pas le temps de voir mon résultat
      0
  4. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Les tableaux en C commencent à l'indice 0 et non 1. Donc tu as déjà des problèmes à ce niveau.
    Ensuite, tu as peut-être le coup de l'allocation dynamique (à voir suivant la norme que respect ton compilateur).
    Sinon tu peux utiliser du memset pour initialiser tout un tableau à 0 et ne pas faire des boucles.
    Cdlt
    0
    1. varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
       
      salut, j'ai essayé de 0 a n-1, sa fait toujours le meme probleme, et de toute façon sa marcherait pas avec n et m petit dans ce cas la. en revanche le memset m'interresse, mais comment l'utiliser?
      j'ai regardé ici mais pas compris :s
      0
    2. varfendell Messages postés 3259 Date d'inscription   Statut Membre Dernière intervention   707
       
      autant pour moi fiddy, le problème venait bien de la ^^'

      merci beaucoup
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Pour memset :
    memset(tab,0,sizeof **tab * n*m);

    Cdlt
    0