Bonjour,
J'ai une fonction dont le code est:
Elle fonctionne bien. Elle est tiree du code de "Lammps" (http://lammps.sandia.org). Je veux rajouter un printf pour inspecter la fonction:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 void Force::create_pair(const char *style, const char *suffix) { delete [] pair_style; if (pair) delete pair; int sflag; pair = new_pair(style,suffix,sflag); if (sflag) { char estyle[256]; sprintf(estyle,"%s/%s",style,suffix); int n = strlen(estyle) + 1; pair_style = new char[n]; strcpy(pair_style,estyle); } else { int n = strlen(style) + 1; pair_style = new char[n]; strcpy(pair_style,style); } }
Mais j'obtiens lors de la compilation l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void Force::create_pair(const char *style, const char *suffix) { printf(" la valeur de style est %s \n",*style); delete [] pair_style; if (pair) delete pair; int sflag; pair = new_pair(style,suffix,sflag); if (sflag) { char estyle[256]; sprintf(estyle,"%s/%s",style,suffix); int n = strlen(estyle) + 1; pair_style = new char[n]; strcpy(pair_style,estyle); } else { int n = strlen(style) + 1; pair_style = new char[n]; strcpy(pair_style,style); } }
A quoi cela est il du? la variable est elle vide?Segmentation fault
C'est possible car je veux justement verifier la valeur de cette variable, car on etudie le fichier d'entree du programme entier (lammps), mais j'aimerais savoir comment verifier que la variable est vide ou pas.
J'ai voulu introduire une boucle de verification:
Et j'obtiens l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 const char* tmp01=*style; if (strlen(*tmp01)==0) {...} else {...}Quelqu'un peut il m'indiquer la syntaxe pour:error: invalid conversion from 'char' to 'const char *'
1) afficher un const char* avec printf
2) faire fonctionner la boucle conditionelle de verification de la taille
3) m'aider
Merci
Oodbae
Partager