Soyez le premier à donner votre avis sur cette source.
Snippet vu 7 226 fois - Téléchargée 34 fois
#include<iostream.h> void saisie(int,int *); void affich(int,int *); int main() { int *palloc ; int taille; cout<<"Donner la taille du tableau:"; cin>>taille; palloc=new int[taille]; if(palloc==NULL) cout<<"\n*****Problème d'allocation!!!******\n\n"; else { cout<<"\nAllocation réussie!\n\n"; saisie(taille,palloc); affich(taille,palloc); } delete[] palloc; return 0; } void saisie(int tail,int *adr) { for(int i=0;i<tail;++i) { cout<<"saisissez un nombre:"; cin>>*(adr+i); } } void affich(int taile, int *adre) { for(int j=0;j<taile;++j) { cout<<"tab["<<j<<"]="<<*(adre+j)<<", \n"; } }
>cin>>*(adr+i);
> cout<<"tab["<<j<<"]="<<*(adre+j)<<", ";
c est une consigne qu on m a donné!!!
merci pour le reste!!
Déprécié, préferer :
# include
using namespace std;
>void saisie(int,int *);
>void affich(int,int *);
Préférer spécifier le nom des variables pour plus de lisibilité.
> palloc=new int[taille];
> if(palloc==NULL)
> cout<<"
*****Problème d'allocation!!!******
";
La logique est bonne, mais le problème est que new ne retourne pas 0 si l'allocation a échoué, il lance une exception. La façon de le forcer à retourner 0 est de spécifier (nothrow) :
palloc = new (nothrow) int[taille];
Ou tout simplement d'attraper l'exception :
try
{
palloc = new int[taille];
}catch (...)
{
cout << "l'allocation a échoué";
}
> cin>>*(adr+i);
> cout<<"tab["<<j<<"]="<<*(adre+j)<<",
";
Cette syntaxe est à éviter, préférer
cin >> adr[i];
cout<< adre[j];
qui sont beaucoup plus lisibles et sécuritaires.
Finalement, on dirait que tu ne veux pas nommer tes arguments du même nom. Sache que c'est légal :
int f(int mavariable);
int g(int mavariable);
int h(int mavariable);
Les arguments de fonctions différentes peuvent avoir le même nom. Je te recommande ces noms :
void saisie(int taille,int *adresse);
À part ça, tout est bien!
Jonathan
Pourquoi tu l'alloues alors que tu vas l'allouer juste après ?
vu que tu fais 2 fois new sur le même pointeur, ya 4 octets qui se sont enfuis...
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.