begin process at 2012 05 29 05:03:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Général

 > 

fonction qui retourne une chaine==>libération de la mémoire


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

fonction qui retourne une chaine==>libération de la mémoire

mercredi 22 novembre 2006 à 22:05:33 | fonction qui retourne une chaine==>libération de la mémoire

tibob51

Membre Club
Bonsoir,
J'ai eu besoin d'utiliser une fonction me retournant une chaine,après mes recherches sur cpp france j'ai trouvé la syntaxe suivante:

char* Fonction();
{
char* texte=new char[64];
strcpy(...);
//delete texte;!!!!
return texte;
}

Je pensai que le fait de rajouter delete m'empecherai de récuperer ma chaine (car celle ci vient d'etre détruite),mais en faisant le teste je me suis apperçu que non.
Pourquoi?La mémoire alloué par texte est elle alors libérée?
Merçi d'av pour vos réponses
mercredi 22 novembre 2006 à 22:36:01 | Re : fonction qui retourne une chaine==>libération de la mémoire

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
la mémoire est marquée 'libre' mais si rien ne vient remplacer la valeur des octets à cet emplacement tu pourras lire ce que tu attendais.
Pour autant il ne faut pas procéder ainsi, sur un gros prog tu es quasi certain que les valeurs de la chaine seront écrasées.

ciao...
BruNews, MVP VC++
mercredi 22 novembre 2006 à 22:36:42 | Re : fonction qui retourne une chaine==>libération de la mémoire

SAKingdom

Membre Club
delete[] texte;
pour supprimer un tableau. La mémoire devrais être désalloué et le pointeur invalide. Si tu veux retourner un pointeur, tu peux le prendre en argument de la fonction:

char* Fonction(char *texte);
{
    strcpy(...);
    return texte;
}

Tu alloue donc la mémoire avant l'utilisation de la fonction et la libère après. Pas de confusion.

C++ (@++)

mercredi 22 novembre 2006 à 22:39:18 | Re : fonction qui retourne une chaine==>libération de la mémoire

SAKingdom

Membre Club
BruNews>> A bon? Je croyais que Windows protégait les espaces "libre" (non alloué).

C++ (@++)

mercredi 22 novembre 2006 à 22:50:28 | Re : fonction qui retourne une chaine==>libération de la mémoire

BruNews

Administrateur CodeS-SourceS
nenni, tout TON espace user (2 Go) est accesssible en lecture.

ciao...
BruNews, MVP VC++
mercredi 22 novembre 2006 à 22:54:08 | Re : fonction qui retourne une chaine==>libération de la mémoire

tibob51

Membre Club
Ok merçi BruNews (toujours aussi rapide ).
et merçi de la rectification SAKingdom,ct un pti oublie


Cette discussion est classée dans : fonction, texte, chaine, char, mémoire


Répondre à ce message

Sujets en rapport avec ce message

PROBLEME pour retourner un char* a partir d'un fichier [ par kobee12 ] Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang PROBLEME pour retourner un char* apres recuperation d'une chaine(sscanf) d'un fichier [ par kobee12 ] Voici ma fonction. Elle prend en argument un caractere. A partir de ce caractere, elle renvoie la chaine qui lui est associe.Par exemple:"fichier_lang fonction qui retourne un char [ par glipper ] Bonjour,Voila, j'ai un probleme avec une fonction qui doit retourner une chaine de caractere ! J'ai compris qu'elle ne pouvait pas renvoyer la chaine, Petit problème avec NEW DELETE et RETURN [ par kuruma ] Bonjourj'ai un petit problème avec cette fonction. en c++ ou c :#include #include #include #include #include #include <cst pb avec une fonction qui retourne une chaine de caractère [ par othland ] slt tlm: j'ai introduit le code suivant: char * my_func(........) {char ch[30];   mon code..... return(ch); } void main() { char chaine[30];   chaine fichie texte [ par cedric3456 ] bonjour je suis tres nul en c++ je debute pouvez vous m'aidez je cherche a faire 3 fonction sur Dev-C++ 4.9.9.2fonction :ecrire (nom_fichier,chaine_ch Appels croises C/F90 [ par souslikP ] Bonjour, J'ai un main C qui appelle du F90 en lui passant une chaine de caracteres. Probleme sur PC avec Visual C++, ca plante au debugger (passage de Fonction et string, Bug ? [ par FeelCode ] Hellobon je me suis mis aux c++ .net  soiyer indulgent. IDE visual expresse 2005 .netje ne parvien pas a faire un fonction qui rencvoiye une string. j Fonction erreur [ par logant83 ] Bonsoir, voila alors j'essay de faire retourner a ma fonction 'char *splitnick(char *mot)"' une valeur char (logique je sais) mais voila dés que je co fonction remplacant opendir() [ par crunk ] bonjour, je cherche une fonction qui pourrait remplacer opendir() pour verifier l'existence d'un repertoire mais qui prendrait un char en parametre(ou


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 : 0,655 sec (4)

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