IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

problème allocation dynamique dans C++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Par défaut problème allocation dynamique dans C++
    bonsoir les amis,
    je veux faire une allocation dynamique d'une variable de type chaine de caractère mais j'ai eu beaucoup de problèmes lors de la compilation du programme.
    voici mon programme:
    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
    22
    23
    24
    25
     
    int main(){
     
    ...
     
       tab[0]="";
       string sequence[nb_seq];
       string seq;
      char *buffer2;
      buffer2=new char;
                    strncpy(buffer2,seq,k);
                     u++;
                     lamda=0;verif=0;
                        while((lamda<u) && (verif<1)){
                            X=strcmp(tab[lamda],buffer2);
                            if(X==0){
                            verif++;
                            }
                            lamda++;
                        }
                        if (verif==0){
                        tab[u]=buffer2;
                        }
                        else u--;
    ...
    error: cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '2' to 'char* strncpy(char*, const char*, size_t)'|

    je pense que c'est un problème lors de la déclaration du buffer2 .
    merci pour votre aide

  2. #2
    Membre émérite

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par défaut
    Bonsoir,
    error: cannot convert 'std::string {aka std::basic_string<char>}' to 'const char*' for argument '2' to 'char* strncpy(char*, const char*, size_t)'|
    Tu essais en effet de convertir (ou comparer) une "string" en un "const char". Le type commun "char" n'a pas connaissance de la librairie "string". La conversion :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const char * chaineCaractères = laString.c_str();

  3. #3
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 317
    Par défaut
    merci pour votre aide.
    mais je n'ai pas compris qu'est ce que je dois convertir.
    dans mon exemple j'ai buffer2 mais je n'ai pas pu le convertir afin qu'il soit copier ou comparer dans le reste du programme.

  4. #4
    Membre émérite

    Homme Profil pro
    Non disponible
    Inscrit en
    Décembre 2012
    Messages
    478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Non disponible

    Informations forums :
    Inscription : Décembre 2012
    Messages : 478
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strncpy(buffer2,seq,k); /*devrait être :*/ strncpy(buffer2,seq.c_str(),k);

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    533
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 533
    Par défaut
    Alors ça c'est vraiment un code de souillon !
    Qu'est-ce qu'il est censé faire ?

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    tu es obligé de te coltiner l'api C pour les chaines?
    string::substr() ne te satisfait pas?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 06/05/2008, 13h12
  2. Problème allocation dynamique ?
    Par Dark_Alex69 dans le forum C
    Réponses: 15
    Dernier message: 20/11/2007, 15h44
  3. problème allocation dynamique
    Par josef24 dans le forum Débuter
    Réponses: 6
    Dernier message: 12/11/2007, 12h31
  4. Réponses: 2
    Dernier message: 14/12/2006, 07h54
  5. [D7] - Allocation dynamique dans une DLL
    Par david_chardonnet dans le forum Delphi
    Réponses: 6
    Dernier message: 05/07/2006, 15h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo