Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

CS201- Introduction to Programming- Lecture 24

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Prochain SlideShare
Acceleration and force 2010
Acceleration and force 2010
Chargement dans…3
×

Consultez-les par la suite

1 sur 34 Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à CS201- Introduction to Programming- Lecture 24 (20)

Plus par Bilal Ahmed (20)

Publicité

Plus récents (20)

CS201- Introduction to Programming- Lecture 24

  1. 1. Introduction ttoo PPrrooggrraammmmiinngg LLeeccttuurree 2244
  2. 2. TTooddaayy’’ss AAggeennddaa MMeemmoorryy AAllllooccaattiioonn –DDyynnaammiicc mmeemmoorryy aallllooccaattiioonn –AAddvvaannttaaggeess//ddiissaaddvvaannttaaggeess ooff DDyynnaammiicc aanndd ssttaattiicc mmeemmoorryy aallllooccaattiioonn –CCoommmmoonn pprrooggrraammmmiinngg eerrrroorrss wwhhiillee uussiinngg DDyynnaammiicc mmeemmoorryy aallllooccaattiioonn
  3. 3. SSttaattiicc MMeemmoorryy AAllllooccaattiioonn iinntt ii ,, jj ,, kk ;; cchhaarr ss [[ 2200 ]] ;;
  4. 4. CCoommppiillee TTiimmee AAllllooccaattiioonn
  5. 5. DDyynnaammiicc MMeemmoorryy AAllllooccaattiioonn
  6. 6. HHeeaapp
  7. 7. PPooiinntteerrss
  8. 8. vvooiidd PPooiinntteerr
  9. 9. iinntt **ii ;; cchhaarr **ss ;; i is a pointer to an integer
  10. 10. vvooiidd **ppttrr ;;
  11. 11. CCaasstt
  12. 12. vvooiidd **ppttrr ;;
  13. 13. (( iinntt ** )) ppttrr ;;
  14. 14. NNUULLLL
  15. 15. Space in terms of numbers of elements ccaalllloocc (( nn ,, mm )) ;; Space in terms of size each of elements
  16. 16. calloc ( 1000 , ssiizzeeooff (( iinntt )) ))
  17. 17. ( int * ) calloc ( 1000 , ssiizzeeooff (( iinntt )) ))
  18. 18. void * calloc ( size_t n , ssiizzee__tt eell--ssiizzee ))
  19. 19. EExxaammppllee 11 iinntt **iiPPttrr ;; iiPPttrr == (( iinntt ** )) ccaalllloocc (( 11000000 ,, ssiizzeeooff (( iinntt )) )) ;; iiff (( iiPPttrr ==== NNUULLLL )) eexxiitt (( )) ;;
  20. 20. vvooiidd ** mmaalllloocc (( nn )) ;; Number of bytes required
  21. 21. malloc (1000 *ssiizzeeooff (( iinntt )) )) ))
  22. 22. malloc ( n ( sizeof (( ffllooaatt )) )) ))
  23. 23. SSttaattiicc MMeemmoorryy AAllllooccaattiioonn ##ddeeffiinnee MMAAXXSSTTUUDDEENNTT 110000 iinntt SSttuuddeenntt [[ MMAAXXSSTTUUDDEENNTT ]] ;;
  24. 24. PPrroobblleemm ssttaatteemmeenntt FFiinndd tthhee aavveerraaggee aaggee ooff tthhee ssttuuddeennttss iinn yyoouurr ccllaassss
  25. 25. EExxaammppllee 22 iinntt nnuummssttdd ;; iinntt **iiPPttrr ,, **ssPPttrr ;; ccoouutt <<<< ""EEnntteerr tthhee nnuummbbeerr ooff ssttuuddeennttss "" <<<< eennddll ;; cciinn >>>> nnuummssttdd ;; iiPPttrr == mmaalllloocc (( nnuummssttdd ** (( ssiizzeeooff (( iinntt )) )) )) ;; iiff (( iiPPttrr ==== NNUULLLL )) {{ ccoouutt <<<< ""EErrrroorr oonn mmaalllloocc "" ;; rreettuurrnn 11 ;; //** UUssee aa nnoonnzzeerroo rreettuurrnn ttoo iinnddiiccaattee aann eerrrroorr hhaass ooccccuurrrreedd **// }} //// aa wwhhiillee lloooopp ttoo rreeaadd tthhee aaggeess ooff tthhee ssttuuddeenntt aanndd ppllaaccee tthheemm iinn tthhee mmeemmoorryy ssPPttrr == iiPPttrr ;; ssPPttrr++++ ;;
  26. 26. ffrreeee (( iiPPttrr )) ;;
  27. 27. realloc(void *iiPPttrr,, ssiizzee__tt ssiizzee));;
  28. 28. UUnnrreeffeerreenncceedd MMeemmoorryy
  29. 29. MMeemmoorryy LLeeaakkss
  30. 30. EExxaammppllee mmaaiinn (( )) {{ ffuunncctt (( )) ;; }}f fuunncctt (( )) {{ iinntt **iiPPttrr ;; iiPPttrr == mmaalllloocc (( 11000000 ** (( ssiizzeeooff (( iinntt )) )) )) ;; //// uusseedd tthhee mmeemmoorryy }}
  31. 31. DDaanngglliinngg PPooiinntteerrss
  32. 32. EExxaammppllee iinntt **ppttrr11 ,, **ppttrr22 ;; ppttrr11 == mmaalllloocc ((11000000 ** (( ssiizzeeooff (( iinntt )) )) )) ;; ppttrr22 == ppttrr11 ;; -- -- -- ffrreeee (( ppttrr11 )) ;;
  33. 33. MMuullttii--ttaasskkiinngg
  34. 34. RReevviieeww DDyynnaammiicc MMeemmoorryy AAllllooccaattiioonn – EEffffiicciieenntt uussaaggee ooff ccoommppuutteerrss rreessoouurrcceess – HHaavvee ttoo ddoo mmeemmoorryy mmaannaaggeemmeenntt

×