Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

5 commentaire(s) de uko sur des sources sur tout CodeS-SourceS

Le : 27/05/2007 22:38:02
Source : KAKURO
J'étais allé trop vite la semaine dernière en répondant à CLMercutio. Merci pour cette précision.


Le : 20/05/2007 09:30:29
Source : KAKURO
Bonjour Clmercutio,

  Il faut que tu supprimes toute la partie entre la ligne 152 et 174 si tu veux que ton affichage fonctionne. Comme la taille de ta grille dépendra du fichier, tu devras donc avoir une fonction qui te donne la taille de ta grille avant de la charger puis faire ton malloc dans le main en fonction du résultat.

Bon courage pour la suite.


Le : 19/05/2007 17:27:04
Source : KAKURO
J'essayerai de comprendre pourquoi et de t'aider plus si j'en ai le temps, car j'en ai très peu malheureusement. En attendant, les fonctions verifregle posent problème. Déjà, ligne 276 et 326, tu initialises la variable départ dans les for avec départ départ elle-même. Autrement dit, la variable de départ n'est jamais correctement initialisée car si tu n'entres pas dans ton if, depart n'est initialisée nulle part avec une valeur, ce qui donne un comportement aléatoire à cette fonction. De plus, si tu tentes de saisir une valeur à la ligne 0 et la colonne 0 de ta grille, les variables li et co ligne 268 et 318 valent -1 et j'obtiens un memory core dumped.


Le : 19/05/2007 14:44:13
Source : KAKURO
Bonjour clmercutio, ton souci vient du fait que tu n'a pas réservé de mémoire pour ta grille dans main. Du coup, à la ligne 82, ton switch fait appel à des variables non allouées en mémoire et tu obtiens ton message d'erreur.

Il faut allouer par malloc de la place pour ton tableau de tableau d'élément puis pour chaque ligne :

        int taille_tab = 0, i;
taille_tab = nx*ny;
tab = (element **) malloc(taille_tab * sizeof(element *));
if (tab == NULL)
{
printf("Erreur d'allocation mémoire pour initialiser la grille\n");
exit(EXIT_FAILURE);
}
for (i=0; i< ny; i++)
{
tab[i] = (element *) malloc(nx * sizeof(element));
}
init(tab);

NB : a la fin du main(), ne pas oublier de désallouer la mémoire

for(i=0; i< ny; i++)
{
free(tab[i]);
}
free(tab);

Sinon, juste un point parmi d'autres : vu que nx et ny ne servent que pour définir la taille de ta grille,
déclare les en début de programme par un #define (donc ce ne seront plus des variables qui coutent 4 octets chacune).

#define nx 9
#define ny 9

Retire ensuite dans les fonctions et les appels de fonction nx et ny. Tes fonctions en deviendront donc plus lisibles.

Vu que tu as déclaré stdlib, tu peux utiliser return EXIT_SUCCESS au lieu de return 0 (ca ne change pas grand chose, mais ça pourra être utile avec des outils comme un débugger par exemple qui le repère) et dans le même registre EXIT_FAILURE.

Evite les menu2, menu3, etc... Sur un plus gros projet, tu y perdras ton latin. Utilise plutôt menu_difficulte, menu_jeu, etc...

pour les commentaires, tu n'est pas obligé de faire /* et */ sur chaque ligne. Par exemple, pour les commentaires du menu init, tu aurais pu écrire

/* Explication de la fonction INIT
* Fonction servant a initialiser le tableau pour eviter des problemes d'allocation
* de valeur dans les cases, pouvant causer des erreurs
*/

NB : les * en début de ligne 2 et 3, c'est juste pour aligner le texte

Tu peux aussi utiliser // pour un commentaire sur une ligne.

Enfin, prends l'habitude de déclarer les fonctions locales saisies dans main en mode static, c'est pour éviter les problèmes de conflits de noms lorsque tu travailles avec plein de fichiers .c. Tu ajoutes static en début de fonction, c'est tout.

Voilà, bonne continuation. Désolé pour mon commentaire un peu long.


Le : 30/04/2003 11:09:42
Source : [WIN32 MFC]CONVERSION DES FICHIERS TXT EN FORMAT LINUX ET WINDOWS
On peut zipper le fichier sous win et le dézipper sous linux / Unix en saisissant unzip -a xxx



1


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,140 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.