Erreur de segmentation (encore. . .)
Bonjour à tous,
J'ai lu le post en dessous, mais je ne trouve pas mon bonheur dedans... J'ai fait tous les sites reprennant les infos sur les chaine de caractères et j'en peux plus, parce que j'ai l'impression de respecter tout ce qu'il faut... Mais ca me le fait toujours... :bug: Donc j'en viens à vous appeler au secours! :oops:
J'ai tenté d'appliquer les remarques que l'on m'avait conseillées dans les posts précédents. Mais rien n'y fait alors que je suis reparti à zéro.
En gros, mon but est de créer un nom de fichier dans le répertoire de l'application. Ce nom de fichier doit être aléatoire.
Je vous transmets mon code:
Récupération du nom de fichier : (OK)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
char * filename;
char * getFilename()
{
return filename;
}
void setFilename(char * s_Filename)
{
filename = s_Filename;
} |
Récupération du répertoire courant : (OK)
Code:
1 2 3
|
char s_Directory[100];
GetCurrentDirectory(sizeof(s_Directory),s_Directory); |
Création nom de fichier : OK : Lorsque je définis moi-même les champs, ca fonctionne. Il me crée bien mon fichier dans c:/test/fichier21229.txt
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
srand(time(NULL));
const char * s_Vol= "c:";
const char * s_Dir = "test";
const char * s_Filename= "fichier";
const char * s_Ext= ".txt";
char * s_Path = malloc (sizeof (*s_Path) * 1024);
sprintf(s_Path, "%s\\%s\\%s%d%s", s_Vol, s_Dir,s_Filename,rand(),s_Ext);
setFilename(s_Path); |
Création nom de fichier : (NOK) : Par contre, lorsque j'utilise mon s_Directory, il m'envoie péter... Alors que lorsque j'affiche mon s_Path, il est bien : c:/test/fichier21229.txt
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
srand(time(NULL));
const char * s_Filename= "fichier";
const char * s_Ext= ".txt";
char * s_Path = malloc (sizeof (*s_Path) * 1024);
sprintf(s_Path, "%s\\%s%d%s",s_Directory,s_Filename,rand(),s_Ext);
setFilename(s_Path);
printf("%s",getFilename()); // Affiche c:/test/fichier21229.txt |
J'espère que vous y verrez plus clair que moi.