Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
nico
programmation wrote:
Bonjour,
Lorsque le lance l'exécution avec débogage du mon programme C. J'ai le debug suivant:
Run-Time Check Failure #2 - Stack around the variable 'fichier' was corrupted.
Que signifie ceci et comment la résoudre ?
qu'il y a un dépassement mémoire sur cette variable faire du pas-à-pas en affichant la valeur de la variable (et des autres) et en voyant à quel moment ça déconne
programmation wrote:
Bonjour,
Lorsque le lance l'exécution avec débogage du mon programme C. J'ai
le debug suivant:
Run-Time Check Failure #2 - Stack around the variable 'fichier' was
corrupted.
Que signifie ceci et comment la résoudre ?
qu'il y a un dépassement mémoire sur cette variable
faire du pas-à-pas en affichant la valeur de la variable (et des autres)
et en voyant à quel moment ça déconne
Lorsque le lance l'exécution avec débogage du mon programme C. J'ai le debug suivant:
Run-Time Check Failure #2 - Stack around the variable 'fichier' was corrupted.
Que signifie ceci et comment la résoudre ?
qu'il y a un dépassement mémoire sur cette variable faire du pas-à-pas en affichant la valeur de la variable (et des autres) et en voyant à quel moment ça déconne
programmation
Voici le code de la fonction: void creer_fichier(char attribut[20],char valeur[20],char nom_table [20]) { FILE *fp; char fichier[20]; strcpy(fichier,valeur); strcat(fichier,".txt"); fp=fopen(fichier,"w");
Lorsque je fais le débogage, le curseur jaune se pointe sur le dernier accolade fermant de ce code.
marc
programmation a écrit :
Lorsque je fais le débogage, le curseur jaune se pointe sur le dernier accolade fermant de ce code.
Il faut mettre un/des breakpoints bien sûr. Et on ne passe jamais de tableaux de chars avec taille définie en paramètres de fonctions, mais par pointeur..
programmation a écrit :
Lorsque je fais le débogage, le curseur jaune se pointe sur le dernier
accolade fermant de ce code.
Il faut mettre un/des breakpoints bien sûr.
Et on ne passe jamais de tableaux de chars avec taille définie en
paramètres de fonctions, mais par pointeur..
Lorsque je fais le débogage, le curseur jaune se pointe sur le dernier accolade fermant de ce code.
Il faut mettre un/des breakpoints bien sûr. Et on ne passe jamais de tableaux de chars avec taille définie en paramètres de fonctions, mais par pointeur..
Bertrand Lenoir-Welter
Le fait de passer des tableaux formatés en argument à la fonction n'a aucun sens. Lorsque vous faites strcpy(fichier,valeur) en fait vous copiez un truc indéfini dans votre variable locale, et forcément ça déborde en cherchant le zéro terminal. Au dépilement (dépilation ?), badaboum !
Le bon cocde devrait être : void creer_fichier(char* attribut, char* valeur, char* nom_table)
D'autre part, vous ne réservez que 20 caractères pour votre variable fichier, ce qui vous fait risquer le débordement.
Je vous recommande vivement d'envisager l'acquisition du K&R, vous avez l'air d'en avoir bien besoin.
Le fait de passer des tableaux formatés en argument à la fonction n'a
aucun sens. Lorsque vous faites strcpy(fichier,valeur) en fait vous
copiez un truc indéfini dans votre variable locale, et forcément ça
déborde en cherchant le zéro terminal. Au dépilement (dépilation ?),
badaboum !
Le bon cocde devrait être :
void creer_fichier(char* attribut, char* valeur, char* nom_table)
D'autre part, vous ne réservez que 20 caractères pour votre variable
fichier, ce qui vous fait risquer le débordement.
Je vous recommande vivement d'envisager l'acquisition du K&R, vous avez
l'air d'en avoir bien besoin.
Le fait de passer des tableaux formatés en argument à la fonction n'a aucun sens. Lorsque vous faites strcpy(fichier,valeur) en fait vous copiez un truc indéfini dans votre variable locale, et forcément ça déborde en cherchant le zéro terminal. Au dépilement (dépilation ?), badaboum !
Le bon cocde devrait être : void creer_fichier(char* attribut, char* valeur, char* nom_table)
D'autre part, vous ne réservez que 20 caractères pour votre variable fichier, ce qui vous fait risquer le débordement.
Je vous recommande vivement d'envisager l'acquisition du K&R, vous avez l'air d'en avoir bien besoin.