* stack smashing detected *: <unknown> terminated
Bonjour, gcc m'indique *** stack smashing detected ***: <unknown> terminated avec cette fonction.
J'alloue surement pas assez de mémoire pour ma variable newFunction mais je ne vois pas comment améliorer tout ça (à cet heure) :).
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| /**
* affichage des informations de l'écran GL.
* @param chemin du fichier.csv
*/
void windowFunction(char* sourcesPath){
int val;
char *newFunction = NULL;
char argument[40],
description[100];
FILE *file = NULL;
file = fopen(sourcesPath, "r"); /* read file */
if (file == NULL)
exit(1);
else {
do{
fscanf(file, "%s %s", argument, description);
newFunction = (char*)malloc(sizeof(char));
//strcpy(newFunction, argument);
printf("salut la new funct est %s \n", newFunction);
sprintf(newFunction, "%s", argument);
val = glutGet(newFunction);
printf("%d\n", val);
}while(!feof(file)); // tester la fin d'un fichier*/
fclose(file); /* fermer un fichier ouvert */
}
free(newFunction);
} |
initialisation de l'entier
Tu initialise ton entier à NULL normalement cette constante (qui vaut en principe 0) n'est à utiliser que pour les pointeurs.
De plus dans ton appel à fscanf tu as oublié de donner une adresse (il manque le '&') pour les chaines de caractéres ce n'est pas nécessaire
car le nom d'un tableau (ici de caractéres) est implicitement equivalent a &tab[0].