Supprimer un variable

Nagalta Messages postés 14 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 7 octobre 2006 - 7 oct. 2006 à 14:42
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 9 oct. 2006 à 08:41
Bonjour je suis débutant en c++

J'ai visiblement un probleme de memory leak dans mon programme.

visiblement cela vient du fait que je reatribut des valeurs a des meme variables durant mon programme.
Alors jessai de comprendre comment reinitialisé une variable (style unset() en php)

j'essai cela :
 #include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <string>
#include
#include <fstream>
using namespace std;




int main()
{


char  essai[2]="A";
printf(essai);
printf("\n");
delete[] essai;
printf(essai);
system("pause");
}

le deuxieme printf(essai) affiche encore le A alors que la variable est censé etre reinitialisée...

Quelq'un peut t'il m'éclairer ? merci bcp

9 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 oct. 2006 à 14:50
'essai' est une réservation sur la pile, pas une alloc evec new, impossible donc de désallouer avec delete.

Faut lire un bouquin de C++, impossible d'y aller par tatonnement.

ciao...
BruNews, MVP VC++
0
Oeil_de_taupe Messages postés 150 Date d'inscription samedi 31 janvier 2004 Statut Membre Dernière intervention 16 février 2009
7 oct. 2006 à 14:56
Je sais pas que c'est le grosse frime ce lien mais je trouve ce tutorial très bien. Il remplace assez bien un livre.
Je te laisse le regarder avant de continuer: http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c.html
0
Nagalta Messages postés 14 Date d'inscription lundi 1 décembre 2003 Statut Membre Dernière intervention 7 octobre 2006
7 oct. 2006 à 14:56
Merci, je vais le faire.. cela veux t'il dire que comme ca : new char  essai[2]="A";
ca marchera ?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
7 oct. 2006 à 15:00
Va lire, on ne refera pas un tuto sur le forum, c'est trop long.
Le forum est là pour expliquer un prob particulier sur un prog, dans ton cas c'est la syntaxe même du langage et sa mise en oeuvre qui manque.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zied86 Messages postés 85 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 4 août 2014
9 oct. 2006 à 00:06
voici une solution qui marche:
les autres bibliotheque comme: conio.. ne sont pas nessecaire.
#include <windows.h>
#include <stdio.h>
#include <string>



main()
{
char  essai[2]="z";
printf(essai);
printf("\n");
strcpy(essai,"");
printf(essai);
system("pause");
}







Ellouze Zied
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 oct. 2006 à 00:22
ouhhhh dur dur...

char essai[2]; // = "z" NON ça place une chaine en segment data
essai[1] = 0; // terminateur NULL
essai[0] = 'z';

strcpy() est une boucle, totalement inutile ici:
essai[0] = 0; // idem en 1 seul cycle

ciao...
BruNews, MVP VC++
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 oct. 2006 à 00:24
ah oui autre chose:
mettre un zéro en 1er octet de chaine ne dépilera pas pour autant, la variable n'est en rien supprimée.

ciao...
BruNews, MVP VC++
0
zied86 Messages postés 85 Date d'inscription dimanche 5 mars 2006 Statut Membre Dernière intervention 4 août 2014
9 oct. 2006 à 02:23
on ne peut pas mettre : essai[1]=0;//c'est une chaine de caractere il faut mettre les variables entre 2 ".
                                    essai[0]='1';//on le declare char essai='1'

Ellouze Zied
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 oct. 2006 à 08:41
essai[1] n'est pas une variable mais l'accès mémoire à l'octet d'une variable.

Allez lire un bouquin de C et revenez ensuite sinon on ne fera que perdre notre temps.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous