begin process at 2012 05 29 19:13:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

New et Delete


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

New et Delete

vendredi 21 mars 2003 à 10:29:09 | New et Delete

Tyroflan

juste une question


si j'ai ceci :
int *p1;
...
main()
{
int pipi;
cin >> pipi;
p1 = new int [pipi];
...
delete[pipi] p1; ou bien delete[] p1;
}

MAIS

je procède ainsi ds mon progarmme:
int **bourse;

main()
{
int pipi;
cin >> pipi;
bourse = new int* [pipi];
for (int i=0;i<pipi;++i)
bourse[i] = new int [5];

// comment faire un delete correct pour bien deleter toutes mes variables crées ?
}


Merci de votre aide.
Xavier
vendredi 21 mars 2003 à 11:14:26 | Re : New et Delete

BruNews

Administrateur CodeS-SourceS
Si tableau, ton cas:
delete[] ptr;
else delete type;
Vois que ici tu pouvais utiliser malloc(), la diff est que new sait appeler le constructeur si est une classe, ce qui n'est pas le cas. Le pendant de malloc est free(ptr);
BruNews, ciao...


-------------------------------
Réponse au message :
-------------------------------

> juste une question
>
>
> si j'ai ceci :
> int *p1;
> ...
> main()
> {
> int pipi;
> cin >> pipi;
> p1 = new int [pipi];
> ...
> delete[pipi] p1; ou bien delete[] p1;
> }
>
> MAIS
>
> je procède ainsi ds mon progarmme:
> int **bourse;
>
> main()
> {
> int pipi;
> cin >> pipi;
> bourse = new int* [pipi];
> for (int i=0;i<pipi;++i)
> bourse[i] = new int [5];
>
> // comment faire un delete correct pour bien deleter toutes mes variables crées ?
> }
>
>
> Merci de votre aide.
> Xavier
vendredi 21 mars 2003 à 12:27:24 | Re : New et Delete

vieuxLion

Salut

Dans ton premier cas, comme te l'a dit Brunews, il suffit de delete[]

p1 = new int[pipi]; => delete[] pi;

Par contre , dans ton deuxième cas, il faut bien TOUT libérer
bourse = new int* [pipi];
for (int i=0;i<pipi;++i) bourse[i] = new int [5];

nécessite :
for (int i=0;i<pipi;++i) delete[] bourse[i];
ET
delete[] bourse;

-------------------------------
Réponse au message :
-------------------------------

> juste une question
>
>
> si j'ai ceci :
> int *p1;
> ...
> main()
> {
> int pipi;
> cin >> pipi;
> p1 = new int [pipi];
> ...
> delete[pipi] p1; ou bien delete[] p1;
> }
>
> MAIS
>
> je procède ainsi ds mon progarmme:
> int **bourse;
>
> main()
> {
> int pipi;
> cin >> pipi;
> bourse = new int* [pipi];
> for (int i=0;i<pipi;++i)
> bourse[i] = new int [5];
>
> // comment faire un delete correct pour bien deleter toutes mes variables crées ?
> }
>
>
> Merci de votre aide.
> Xavier
vendredi 21 mars 2003 à 12:56:48 | Re : New et Delete

Tyroflan


Okay merci c'set ce que je voulais savoir, j'hésitais à mettre une boucle for pour vider les 2 "étages" en 2 fois...

Merci pour ta réponce.
Xav


-------------------------------
Réponse au message :
-------------------------------

> Salut
>
> Dans ton premier cas, comme te l'a dit Brunews, il suffit de delete[]
>
> p1 = new int[pipi]; => delete[] pi;
>
> Par contre , dans ton deuxième cas, il faut bien TOUT libérer
> bourse = new int* [pipi];
> for (int i=0;i<pipi;++i) bourse[i] = new int [5];
>
> nécessite :
> for (int i=0;i<pipi;++i) delete[] bourse[i];
> ET
> delete[] bourse;
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > juste une question
> >
> >
> > si j'ai ceci :
> > int *p1;
> > ...
> > main()
> > {
> > int pipi;
> > cin >> pipi;
> > p1 = new int [pipi];
> > ...
> > delete[pipi] p1; ou bien delete[] p1;
> > }
> >
> > MAIS
> >
> > je procède ainsi ds mon progarmme:
> > int **bourse;
> >
> > main()
> > {
> > int pipi;
> > cin >> pipi;
> > bourse = new int* [pipi];
> > for (int i=0;i<pipi;++i)
> > bourse[i] = new int [5];
> >
> > // comment faire un delete correct pour bien deleter toutes mes variables crées ?
> > }
> >
> >
> > Merci de votre aide.
> > Xavier
>


Cette discussion est classée dans : int, p1, delete, bourse, pipi


Répondre à ce message

Sujets en rapport avec ce message

vecteur avec int et char [ par Tyroflan ] int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable vecteur avec int et char [ par Tyroflan ] int **boursemain(){...cin >> nombre;for (unsigned int i=0;i bourse[i] = new int [5];donc je crée autant de vecteurs bourse que l'indique la variable Liberation de la memoire - tableau dynamique a plusieurs dimensions [ par playmo420 ] SalutJ'ai un petit probleme : j'utilise des tableaux a plusieurs dimensions, mais lorsque je veux liberer la memoire (dans le destructeur de la classe utilisation de delete [ par thiosyiasar ] Bonne fête à tous !!!!En cette fin d'année, je suis confronté à un petit pb lors que mon application se termine, j'ai une erreur en relation la mémoir Debug Error sous VC++ [ par iaco71 ] Quand je compile mon programme j'obtiens une jolie erreur Microsoft Visual C++ Debug LibraryDAMAGE : after Normal block ...Je ne l'obtiens plus si j'e New et delete [ par nisaloncaje ] Bonjour, je m'arrache les cheveux parce que j'ai un bug dans mon programme que je ne trouve pas :en effet, j'ai le code suivant : lf=new int [maxi];fo pb de delete [ par NADA114 ] bonjour,j'utilise Microsoft Visual Studio .Net 2003 (C++)voici mon pb je dois faire une lib en réutilisant un code dont les structures sont définies d Signaux [ par manta7 ] Bonjour je dois faire un programme qui crée 2 fils, envoie SIGUSR1 au fils 1, qui le renvoie au pere, qui le renvoie au fils 2 etc..j'ai tenté ça mais Les pointeurs [ par hicam2 ] J'ai se programme#include #include int main(){int * p1 =(int*)malloc(50*sizeof(int));int *p2 = p1;int i;for(i=1;i*(int*)(&p1-2)= 18 delete matrice c++ [ par olfamzoughi ] bonjour Je suis débutante en c/c++. j essaye de supprimer une matrice de taille 2*Nb_pt par le code suivant: ////////////////////////////////////////


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,827 sec (3)

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