begin process at 2012 02 09 13:19:02
  Trouver un code source :
 
dans
 

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

Déposé sur Coloration syntaxique

Ca marche parfaitement bien sur Delphi XE. Merci beaucoup pour ce code.
Posté le : 28/06/2011 09:40:06

Déposé sur Kakuro

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

Déposé sur 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.
Posté le : 20/05/2007 09:30:29

Déposé sur 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.
Posté le : 19/05/2007 17:27:04

Déposé sur 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.
Posté le : 19/05/2007 14:44:13

Déposé sur [win32 mfc]conversion des fichiers txt en format linux et win...

On peut zipper le fichier sous win et le dézipper sous linux / Unix en saisissant unzip -a xxx
Posté le : 30/04/2003 11:09:42

1


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,109 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales