Bibliothèque stdlib.h

Résolu/Fermé
ibtissame_87 Messages postés 102 Date d'inscription lundi 6 août 2007 Statut Membre Dernière intervention 6 janvier 2010 - 18 mai 2008 à 19:16
Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 - 19 mai 2008 à 14:43
Bonjour,
svp j'aimerai savoir quel est l'interet de l'utilisation de la bibliothèque stdlib dans ce programme . Merci:)


#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
class calcul
{int nbval,*val;
public: calcul(int,int);
~calcul(); // destructeur
void affiche();
};
calcul::calcul(int nb,int mul)
{int i;
nbval = nb;
val = new int[nbval];
for(i=0;i<nbval;i++)val[i] = i*mul;
}
calcul::~calcul()
{delete val;}
calcul::affiche()
{int i;
for(i=0;i<nbval;i++)cout<<val[i]<<" ";
cout<<"\n";
}
void main()
{
clrscr();
calcul suite1(10,4);
suite1.affiche();
calcul suite2(6,8);
suite2.affiche();
getch() ;}

3 réponses

Mahmah Messages postés 496 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 22 juin 2010 125
19 mai 2008 à 14:43
Salutations,

stdlib.h définit des fonctions de la librairie standard du C comme system, malloc, free et leurs amis ou les fonctions de génération de nombres aléatoires. Ici il devrait servir dans le main qui devrait renvoyer un code (un int) pour signaler au programme appelant ou au shell le bon déroulement ou non du programme. Il existe pour cela deux constantes qui peuvent être utilisées : EXIT_SUCCESS et EXIT_FAILURE. Il est courant de faire un simple return 0 en cas de succès... (et donc de se passer de stdlib ici)

Il y a tout de même une erreur à corriger : Ce code est écrit en C++ et inclus un fichier standard C. (C'est mal ^^") Il faut inclure à la place des équivalent C++. Ici : #include <cstdlib> (ou supprimer le stdlib.h)
On retrouve d'autres header dans le même cas comme <math.h> --> <cmath> etc.

iostream.h n'existe pas -> #include <iostream> qui lui est le header standard C++
(Il manque également les ::std:: devant les cout.

Les opération +, -, *, / ou les ; ne sont pas des fonctions ou constantes mais appartiennent au langage et n'ont pas besoin d'être inclus par l'intermédiaire d'un fichier d'entête.
(Celles-ci seront définies même si le CRT n'est pas inclus)

conio.h n'est pas une librairie standard. C'est à dire qu'il n'existe pas sur certaines machines et dans ce cas ci il diffère même selon les versions de Windows. (ainsi ton programme ne compileras pas sur mon Windows à cause du clrscr)
Il est donc conseillé d'éviter son utilisation. (tant qu'on peut et tant qu'on veut conserver la portabilité)

M.


(Coucou JérémieThe7 ;-))
6
jerémiethe7 Messages postés 152 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 27 février 2009 32
18 mai 2008 à 21:51
salut,
le getch c'est conio.h.

Après tu as la biblio iostream.h qui te sert pour mettre des trucs du genre
system("pause");system("cls"); ou bien clrscr comme tu as mis.

bien sur il y en a aussi d'autres, qui ne servent pas qu'à l'affichage comme netsend par exemple.
donc là la bilio iostream te sert a ça.

Après la biblio stdlib.h te sert dans tous les programmes en C.
Je ne suis pas sûr, mais je pense qu'elle sert à faire "comprendre" les choses simples comme les ; a chaque fin de lignes ou bien les addition, les égalités que tu entre.
Je l'utilise toujours en tout cas.
+
2
soit pour le clrscr, soit pour le getch, sinon a rien
0