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

Visual C++ Discussion :

problème de tableau de caractères dynamique


Sujet :

Visual C++

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2006
    Messages : 112
    Par défaut problème de tableau de caractères dynamique
    Bonjour, j'ai un problème simple, ce sous programme plante à cause du "delete", je comprend pas pourquoi..
    Merci d'avance!!!
    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
    26
    27
    28
    29
    30
    31
     
    void vire_espace(char * chaine)
    {
    	int i=0;
    	int taille,taille_sans_espace;
    	char *chaine_tmp;
     
    	taille = strlen(chaine);
     
    	do{
    		i++;
    	}while(i< taille && chaine[i] != ' ' /*chaine[i]==' ' || i>= taille*/);
    	//	cout <<"i="<<i<<" taille="<<taille<<"\n";
     
    	taille_sans_espace=i;
     
    	chaine_tmp = new char[taille];
    	strcpy(chaine_tmp,chaine);
    	chaine = new char[i];
     
    	//cout << chaine_tmp<<'\n';
     
    	for(i=0;i<taille_sans_espace;i++)
    	{
    	 chaine[i]=chaine_tmp[i];
    	}
    	chaine[i]='\0';
     
    //	cout << chaine<<'\n';
    	delete(chaine_tmp);   //<- fais planter
    }

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    parce que tu exploses la mémoire .
    c'est
    new char[taille+1]; qu'il faut mettre.

    strcpy copie le null terminator (\0).
    strlen renvoie la taille sans le zéro.
    et c'est delete []chaine_tmp; qu'il faut mettre.

    tu utilises les MFC ?

Discussions similaires

  1. Réponses: 17
    Dernier message: 18/07/2008, 14h29
  2. problème allocation tableau dynamique
    Par ofinot dans le forum C++
    Réponses: 5
    Dernier message: 12/02/2008, 15h03
  3. Problème de tableau dynamique
    Par Vindz dans le forum LabVIEW
    Réponses: 23
    Dernier message: 26/04/2007, 13h27
  4. problème sur tableau croiée dynamique
    Par flo64 dans le forum Access
    Réponses: 2
    Dernier message: 29/05/2006, 11h23
  5. problème avec tableau dynamique
    Par akrobat dans le forum C++
    Réponses: 7
    Dernier message: 28/04/2006, 15h29

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