tableau avec allocation dynamique

Soyez le premier à donner votre avis sur cette source.

Snippet vu 7 123 fois - Téléchargée 34 fois

Contenu du snippet

saisie et affichage dun tableau avec une allocation dynamique

Source / Exemple :


#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";
	}
}

Conclusion :


desolé pas de commentaires! ;)

A voir également

Ajouter un commentaire

Commentaires

cs_AmK
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
27 janvier 2010
-
merci tout le monde ça ma permis de comprendre un peu tout ça !
cs_AmK
Messages postés
368
Date d'inscription
jeudi 13 mars 2003
Statut
Membre
Dernière intervention
27 janvier 2010
-
merci tout le monde ça ma permis de comprendre un peu tout ça !
cs_Fabi1
Messages postés
8
Date d'inscription
lundi 13 mai 2002
Statut
Membre
Dernière intervention
8 juin 2005
-
en ce qui concerne les noms de variables e et
>cin>>*(adr+i);
> cout<<"tab["<<j<<"]="<<*(adre+j)<<", ";

c est une consigne qu on m a donné!!!


merci pour le reste!!
jonathanmcdougall
Messages postés
64
Date d'inscription
dimanche 9 février 2003
Statut
Membre
Dernière intervention
7 mars 2003
-
>#include

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
leneuf22
Messages postés
156
Date d'inscription
samedi 12 janvier 2002
Statut
Membre
Dernière intervention
4 mars 2003
-
int *palloc = new int;


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.