goto - C - Programmation
Marsh Posté le 07-04-2006 à 14:36:47
mbarekh a écrit : Bonjour, |
Oui mais c'est fortement déconseillé, exemple tiré de MSDN (au mieux de leur forme )
Code :
|
Marsh Posté le 07-04-2006 à 14:40:55
+1
Je ne vois meme pas dans quel cas on peut en avoir besoin et ne pas pouvoir s'en passer.
Edit: j'oublie qu'on est vendredi
Marsh Posté le 07-04-2006 à 14:41:50
Le goto, en C, ne s'utilise que dans des cas très spécifiques.
En dehors de ces cas plutôt rares, cette instruction est déconseillée.
_darkalt3_ a écrit : +1 |
Il n'arrive jamais qu'on ne puisse pas du tout se passer de goto.
Néanmoins, il y a des cas particuliers pour lesquels l'utilisation de cette instruction simplifie grandement les choses, et dans ce cas on aurait tort de ne pas l'utiliser.
'fin bon, je n'ai personnellement jamais eu besoin de l'utiliser, j'ai juste vu un cas ou deux où c'était effectivement justifié.
Marsh Posté le 07-04-2006 à 14:47:27
je l'ai essayé, ça n' a pas marché et quand j'ai mis ce que j'ai ajouté en commentaire et compilé j'ai eu le message d'erreur suivant:
ld: 0711-750 SEVERE ERROR: The file system is full.
ld: 0711-994 Error occurred while writing to the temporary output file: ./b.YFbd7a
make: *** [tst] Error 1
Marsh Posté le 07-04-2006 à 14:55:03
Ca voudrait dire que la memoire est pleine? Si c'est vrai c'est le goto qui a causé ça?
pour le moment le probl_ème est résolu après plusieurs make, mais je ne comprends pas ce qui s'est passé
Marsh Posté le 07-04-2006 à 14:57:55
ReplyMarsh Posté le 07-04-2006 à 15:08:54
quelqu'un a une idée de ce que voudrait dire ce message d'erreur?
ld: 0711-750 SEVERE ERROR: The file system is full.
ld: 0711-994 Error occurred while writing to the temporary output file: ./b.YFbd7a
make: *** [tst] Error 1
Marsh Posté le 07-04-2006 à 15:19:23
_darkalt3_ a écrit : +1 |
ca peux servir, comme le C n'offre pas de support pour une gestion d'erreur par exception
on aimerait bien pouvoir extraire d'un algorithme d'une complexite autre qu'un "hello
world" le code de gestion des erreurs lui meme tres complexe
Code :
|
la version avec goto et gestion d'erreur reportée géographiquement dans le code
Code :
|
une autre solution c'est d'en avoir rien à foutre des fuites et autres ressources non finalisée, comme beaucoup de programmeurs
Marsh Posté le 07-04-2006 à 15:22:46
Le file system n'est pas la mémoire mais le disque.
Dans file system, il y a file qui veut dire fichier.
Marsh Posté le 07-04-2006 à 15:26:24
mbarekh a écrit : Ca voudrait dire que la memoire est pleine? |
Tu n'as plus d'espace sur ton disque, make ne parvient pas à créer ton fichier.
skelter a écrit :
|
<pinaillage>free(NULL) étant défini par la norme, les "if" sont inutiles.</pinaillage>
Marsh Posté le 07-04-2006 à 15:28:24
oui, mais ...
Code :
|
mais je pinaille, merci pour ton exemple.
Marsh Posté le 07-04-2006 à 15:33:58
Elmoricq a écrit : Tu n'as plus d'espace sur ton disque, make ne parvient pas à créer ton fichier. |
en effet, merci
Marsh Posté le 07-04-2006 à 16:27:46
http://forum.hardware.fr/hardwaref [...] 6883-1.htm
Marsh Posté le 07-04-2006 à 16:32:10
oui c'est le début et la suite de mes problèmes. mais tu pense qu'il y a une solution?
Marsh Posté le 08-04-2006 à 15:36:13
mbarekh a écrit : oui c'est le début et la suite de mes problèmes. mais tu pense qu'il y a une solution? |
Tu te places à la racine de ton système de fichiers (filesystem) et tu tapes la commande
du -sk * |sort -n
Tu obtiendras la liste des répertoires triés par taille (le plus gros en premier). Tu descends dans le plus gros et tu retapes la même commande, etc etc jusqu'à ce que tu aies identifié le fichier (ou répertoire) inutile qui te bouffe tout ton espace disque. Là, tu l'effaces
Bien entendu cette manip part de l'hypothèse que tu as un gros fichier (ou répertoire) inutile dans ton filesystem...
Marsh Posté le 07-04-2006 à 14:30:56
Bonjour,
y a t il une possibilité en C de demander à un programme d'aller à une ligne donné du code aprés une certaine instruction?
C'est à dire, quelque chose comme:
if (a==b)
goto (ligne13 du code)