begin process at 2012 05 30 02:01:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Divers

 > 

Problème avec delete[]


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème avec delete[]

samedi 17 juin 2006 à 18:40:56 | Problème avec delete[]

gbourgeois0019

Salut

J'ai un petit problème. voici le code :

char* Temp = new char[100];
char* Title = new char[100];

strcpy(Temp,"Exemple");

Title = Temp + 1 ;

delete[] Title;


Cela n'a pas de sens puisque ce n'est qu'un exemple mais en gros je veux que Title soit egal a "xemple" . Est-ce que je peut faire cela de cette manière puisque lorsque que je suis en release sa passe mais en debug il me fait une erreur lorsque j'arrive à delete[] Title.

Est-ce qu'il y a un manière plus correcte de tronquer le debut ou la fin d'un tableau de caratère ??

Merci à l'avance.
samedi 17 juin 2006 à 18:43:10 | Re : Problème avec delete[]

gbourgeois0019

J'ai changé le code pour ceci :

char* Temp = new char[100];
char* Title;

strcpy(Temp,"Exemple");

Title = Temp + 1 ;

delete[] Temp;

D'accord ca marche , ca ne fait plus d'erreur , mais ne reste-t-il pas de la mémoire non-désallouée quelque part ? Et de toute facon je ne trouve pas ca très beau comme methode si quelqu'un pouvais men donner un autre ! ;)
samedi 17 juin 2006 à 19:02:16 | Re : Problème avec delete[]

gbourgeois0019

Et puis pour tronquer la fin je faisait :

char* Temp = new char[100];
strcpy(Temp,"Exemple");

Temp[strlen(Temp)-1] = '\0' ;


Sa marche pour tronquer un caractère mais lorsque je veut fair delete[] Temp , sa plante !

J'ai vraiment besoin d'une fonction pour tronquer correctement :P
samedi 17 juin 2006 à 19:09:12 | Re : Problème avec delete[]

vecchio56

Administrateur CodeS-SourceS
char* Temp = new char[100];
char* Title = new char[100];
strcpy(Temp,"Exemple");
Title = Temp + 1 ;
delete[] Title;
C'est normal que ca plante, car Title ne correspond pas a une zone allouée (c'est Temp qu'il faut libérer)

char* Temp = new char[100];
strcpy(Temp,"Exemple");
Temp[strlen(Temp)-1] = '\0';
delete[] Temp;

Ca me semble tout a fait correct, tout est bien libéré
samedi 17 juin 2006 à 19:13:06 | Re : Problème avec delete[]

gbourgeois0019

Pourtant si je fais ce que tu a marqué comme correct , sa plante a delete[] Temp
samedi 17 juin 2006 à 19:26:18 | Re : Problème avec delete[]

niketou

char* Temp = new char[100];
strcpy(Temp,"Exemple");
Temp[strlen(Temp)-1] = '\0';
delete[] Temp;

    system("PAUSE");

aucun probleme pour moi.

samedi 17 juin 2006 à 19:27:34 | Re : Problème avec delete[]

niketou

sans system("PAUSE"); pardon
samedi 17 juin 2006 à 19:33:51 | Re : Problème avec delete[]

gbourgeois0019

char* Path;
char* Temp = new char[MAX_PATH];

        Temp = ::GetCommandLine();
        Temp[strlen(Temp)-2] = '\0' ;
        ii = strrchr(Temp,0x22);
        i = (int)(ii - Temp + 1);
        if ( i > 1 )
            Path = Temp + i;
        else
        {
            delete[] Temp;
            break;
        }

Pour cet exemple, i = 1 donc on passe au else et puis sa plante a delete[] Temp;
samedi 17 juin 2006 à 19:39:21 | Re : Problème avec delete[]

niketou

j'ai pas "ii"
samedi 17 juin 2006 à 19:41:56 | Re : Problème avec delete[]

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
Temp[] sera une alloc ou GetCommandLine, boire ou conduire faut choisir.
Temp = GetCommandLine();
Temp[strlen(Temp)-2] = '\0';
Nenni, le retour de GetCommandLine() doit être considéré comme une constante, toute écriture dessus peut amener à un crash.
delete[] Temp;
normal que plante vu que pointe sur la commandLine.

ciao...
BruNews, MVP VC++

1 2

Cette discussion est classée dans : problème, title, temp, char, delete


Répondre à ce message

Sujets en rapport avec ce message

Problème de delete [ par ManTico ] Salut à tous, j'ai un peu de peine avec la gestion de la mémoire et je voulais savoir deux choses :- pourquoi en mode Debug mon prog plante sur les de problème de lecture en c++ sous vc++6 [ par os22 ] j'essaie de lire un fichier ayant le contenu suivantmarc;collin;4506777228;906 boule;longueuil;j4j1t5;qc;14;allo;roger;dumais;5413432128;1150 dumahel; #def [ par xarier ] salut tous fje voudrait savoir un trucs sur les #defest ce que je peut faire un #def pour une fonction ex : un #def pour cachar* Replace( char* Chain Problème avec ShellExecute() [ par F_o_X ] Bonsoir a tousVoila, je voulais faire un programme qui est en rapport avec les moteur de recherche, mais pour que mon programme soit au point, je dois renvoi de type char[] d'une fonction [ par sbouli ] Bonjour,Je suis ULTRA débutant et je cherche à faire une fonction renvoyant du char, voila le principe :char lectureIni (char section[], char clef[], Problème avec char* [ par Wiwi ] Bonjour tt le monde, j'ai une tite pro (bidon) avec ce morceau de programme. Lors de sa compilation il n'y a aucune erreur, par contre lors de son exé Probleme GTK [ par Jo ] Salut,Quelqu'un pourrait me dire ou est l'erreur ?char * fichier; char *z;gchar *temp;temp = gtk_entry_get_text(GTK_ENTRY(Data));fd1= fopen((char *)te problème tout bête [ par Raoul12 ] voilà, je débute dans le c++ et je voudrais faire ça:char hohun[32] ;hohun = "hohun" ;mais ça ne marche pas... pourtant si je fais ça:char hohun[32] = problème [ par Raoul12 ] voilà, je débute dans le c++ et je voudrais faire ça:char hohun[32] ;hohun = "hohun" ;mais ça ne marche pas... pourtant si je fais ça:char hohun[32] = problème de pointeur sur char (SUPER HYPER IMPORTANT -> juste pour moi...je supose) [ par levraipig ] bonjour à tous, voila moi j'ai un p'ti problème plutot embêtant.... je dois créer un class qui gère les chaines de caractères (ne me demander pas pou


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales