Bonjour,

J'ai une fonction dont le code est:
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);
  }
}
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
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);
  }
}
Mais j'obtiens lors de la compilation l'erreur:
Segmentation fault
A quoi cela est il du? la variable est elle vide?
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:

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
{...}
Et j'obtiens l'erreur:
error: invalid conversion from 'char' to 'const char *'
Quelqu'un peut il m'indiquer la syntaxe pour:
1) afficher un const char* avec printf
2) faire fonctionner la boucle conditionelle de verification de la taille
3) m'aider

Merci
Oodbae