home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 17 / CD_ASCQ_17_101194.iso / dos / prg / alb_c10 / chap_14 / ch14_04.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-09-08  |  1.2 KB  |  54 lines

  1. /*********************************************************************
  2. *  CH14_04.C          Allocation de mΘmoire α un tableau avec calloc() *
  3. *********************************************************************/
  4.  
  5. #include<stdio.h>
  6. #include<alloc.h>                  /* pour malloc() et free()  */
  7. #include<process.h>                /* pour exit()                */
  8.  
  9. void LitU( unsigned*);
  10. void EcritTab( double*, unsigned);
  11.  
  12. main( void)
  13. {
  14.     double *tab;                  /* Nom du tableau           */
  15.     unsigned n;               /* Dimension du tableau     */
  16.  
  17.     printf(" Entrez la dimension du tableau: ");
  18.     LitU( &n);
  19.  
  20.     tab= ( double*) calloc( n, sizeof( double) );
  21.     if( tab== NULL)
  22.       {
  23.          printf("\n La mΘmoire disponible est insuffisante!\n");
  24.          exit( 1);
  25.       }
  26.  
  27.     EcritTab( tab, n);
  28.  
  29.     free( tab); 
  30. }
  31.  
  32. void EcritTab( double *tableau, unsigned dim_tab)
  33. {
  34.     unsigned i;
  35.     double *ptr;
  36.     ptr= tableau; 
  37.     printf("\n (tableau)= ");
  38.     for( i= 0; i< dim_tab; i++)
  39.       printf("\n\t   [%u]= %lf", i, *( ptr++));
  40. }
  41.  
  42. void LitU( unsigned* entier_u)
  43. {
  44.     double dble;
  45.     do
  46.     {
  47.        while( scanf("%lf", &dble)!= 1)
  48.         while( getchar() != '\n');
  49.        while( getchar() != '\n');
  50.     }
  51.     while( dble< 0.0 || dble> 65535.0);
  52.     *entier_u= ( unsigned) dble;
  53. }
  54.