begin process at 2012 02 12 08:44:51
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Debbugage


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

Debbugage

jeudi 9 janvier 2003 à 23:50:01 | Debbugage

Nano2

Pouvez vous svp m'aider a debugger le code suivant :

void main() // 1
{
char* pt; // 2
pt = new char[10]; // 3
// [...]
delete pt; // 4
}

C bien la ligne 4 qui est fausse.. Si oui pkoi?? Merci d'avance..
vendredi 10 janvier 2003 à 08:51:41 | Re : Debbugage

filter

> delete pt; // 4
> }
>
> C bien la ligne 4 qui est fausse.. Si oui pkoi?? Merci d'avance..

Le syntax correct est:

delete [] pt;

et tu dois aussi faire que pt reference le meme adress.
Filter
vendredi 10 janvier 2003 à 11:37:50 | Re : Debbugage

Nano2

Pourrais tu m'expliquer comment faire que pt reference la meme adresse comme tu dis..
vendredi 10 janvier 2003 à 12:09:41 | Re : Debbugage

filter

> Pourrais tu m'expliquer comment faire que pt reference la
>>meme adresse comme tu dis..

> Pourrais tu m'expliquer comment faire que pt reference la
>>meme adresse comme tu dis..

En gros:
Si tu utilise
delete [] pt;
Fais attention que ton pointeur est reference sur un des elements du tableau(c pas obligatoire qu'il pointe vers le premier)...

Ce que tu ne dois pas faire:

TYPE *ptr = new TYPE[size];
//..blabla...

TYPE data;
ptr = &data; //La deja tu as un memory leak, il est mpossible
//de revenir et libere la memoire alloue
//precedement...
//..blabla...

delete [] ptr; // Faux....
Filter
vendredi 10 janvier 2003 à 14:57:41 | Re : Debbugage

Nano2

Bon je ne suis qu'un débutant.. Tu pourrais me donner une version valide du code?? Stp..
vendredi 10 janvier 2003 à 16:34:56 | Re : Debbugage

filter

> Bon je ne suis qu'un débutant.. Tu pourrais me donner une
>>version valide du code?? Stp..

Version valide:

int main(void){
char* ptr = new char[10];
int i = 0;
for(; i < 9; i++ )
ptr[i] = 'a' + i;
delete [] ptr;
return 0;
}

Faux 1:

int main(void){
char* ptr = new char[10];
int i = 0;
for(; i < 9; i++ )
ptr[i] = 'a' + i;
delete ptr;
return 0;
}

Seulement un octet est libere...(le premier dans ce cas)

Faux 2:
int main(void){
char* ptr = new char[10];
int i = 0;
char bla;
for(; i < 9; i++ )
ptr[i] = 'a' + i;
ptr = &bla;
delete ptr;
return 0;
}

Compile sans erreur mais tu auras une faute lors de l'execution.
Filter

PS: Il y a bcp des livres et tutorials sur le net qui peuvent t'aider si qqch n'est pas clair....


Cette discussion est classée dans : char, pt, debbugage


Répondre à ce message

Sujets en rapport avec ce message

Pb avec la modification d'un pointeur dans une fonction [ par graphtyrael ] Bonjour à tous!Pour un projet que je suis actuellement entrain de finaliser j'ai besoin de modifier dans une fonction un pointeur de caractères passé addition en binaire [ par jejedi ] bonsoir , je dois faire un petit prog qui additione 2 nombres binaire. Le probleme c' est que mes 2 nombres étant des chaines de caractére ca me renv Probleme avec une source [ par n3m3s1s ] Erreur de code , je copi bien ce que me dit le livre pourtant #include #define MAXLIGNE 1000 int lireligne(char ligne[], char de[]); void copier(ch convert string to char* [ par Awaking ] J'ai fais un programme pour lister et effectuer des opérations sur les fenêtre. Voici le code pour afficher une fenetre (si elle est cachée). (j'utili C++ / VC6 - Probleme de fonctions.. [ par DakM ] Bonsoir dans main.cpp jai: <span style="font-family: verdana; color: rgb(0, 0, 255); Les erreurs LNK2001 [ par DakM ] Avis aux amateurs d'erreurs LNK2001: Si quelqu'un pourrais m'xpliquer pourquoi quand japelle un fonction du fichier game.cpp [MFC Visual C++] Sockets\CArchive: violation d'accès à la lecture ?? [ par ] Violation d'accès en lecture à la ligne 10... void CTableauBlancDoc::ProcessPendingRead(<SPAN style="COLOR: blue" prob de Class [ par T_Mehdi ] salut a tous^^bon j'ai 2 classe  :class C_Load_File{ C_Load_File(); ~C_Load_File();public : bool Load_Bmp(char* File); bool Load_Jpg(char *File);};cla Tableau 2 dimensions en paramètre [ par kiboumz ] Bonjour, j'aimerais savoir comment passer un tableau de char 2 dimensions dans les paramètres d'une fonction et qu'elle saurait l'appel. Par exemple; !!! Pb gethostname !!! [ par yoyo269 ] Salut,mon problème est je n'arrive pas à récupérer le nom du pc avec le code suivant sous Windows 2000 (ça me renvoie "") :char * ChercheNomPC(){    s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
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,342 sec (4)

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