Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 (ΕΚΤΥΠΩΣΗ)

160 views

Published on

.Α. Στατική και Δυναμική Δέσμευση Μνήμης
1) Στατική Δέσμευση Μνήμης
2) Δυναμική Δέσμευση Μνήμης
2.1) Η συνάρτηση malloc
2.2) Η συνάρτηση free
2.3) Δέσμευση Μεταβλητής
2.4) Δέσμευση Μονοδιάστατου Πίνακα
2.5) Δέσμευση Διδιάστατου Πίνακα

Published in: Education
  • Be the first to comment

  • Be the first to like this

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12 (ΕΚΤΥΠΩΣΗ)

  1. 1. H C 12: . 1. 2. 1. malloc 2. free 3. 4. 5. . . 1. ! "# $ ( $ % " ) $ "# & & ! . ' ! ! ! $ " " . ($ , " % $ " " $ ! $ . "& $ , # . # ) "& %" , . .: ! "& $ , . .: int x; int pinakas[10]; . 2. 1. * malloc * malloc: bytes . + $ % %" & : ( ) $ $ # . ($ NULL, % "" " # . , " ! malloc ) # - NULL & malloc, " ( " ! ) % $ # %" . ! void *malloc(size_t size) stdlib.h
  2. 2. . 2. 2. * free * free: " # bytes $ malloc, & $& $ $ ptr. + $ % %" & : , ! & $. /' " # malloc. " void free(void *ptr) stdlib.h , & $ ! " # malloc "" " " free. . 2. 3. %" ! %" , "# $ %" . + malloc # $ & . " sizeof 0 %" & $ . 1 # free. ! ! $ %" : # int *p; // . p=malloc(sizeof(int)); // *p=4; // free(p); // . 2. 3. %" ' " $& $ " ! float: ! long 2 "# $ ! "" & $ float *p; // . p=malloc(sizeof(float)); // float *p=10.4; // float free(p); // long *p; // . p=malloc(sizeof(long)); // long *p=1132; // long free(p); // . 2. 3. %" " ! " malloc ( " # ) !$ " ! ) : $ NULL $ $ $ NULL " ! " . , " " ) malloc 3 " ! # $ & $ " %$ ! . % p=malloc(sizeof(int) if (!p) { printf(“Apotyxia Desmeysis Mnimis”); exit(0); }
  3. 3. . 2. 3. %" " " ! ! $ %" $ " & /*malloc_var.c Deixnei pws desmeuoume xwro gia mia metavliti */ #include <stdio.h> #include <stdlib.h> main() { int *p; p=malloc(sizeof(int)); if (!p) { printf("Adynamia desmeusis mnimis"); exit(0); } printf("Dwse enan akeraio arithmo: "); scanf("%d",p); printf("Pliktrologisate %d",*p); free(p); } . 2. 3. %" %" ( "& $ , # , ) $ 1 : ' … …… p 5 $ " ) . * !$ & ! $ ! %" . . 2. 4. $ * ! $ ! $ . 2 malloc # $ & ( $) " & & $ " sizeof 0 $ & . 1 # free. 4" ! $ $& : 2 $ " ! "" & int *p; // . p=malloc(sizeof(int)*10); // 10 p[3]=5; // free(p); // . 2. 4. $ ' " ! # ! $ : /*malloc_1d-array.c Deixnei pws desmeuoume xwro gia enan monodiastato pinaka */ #include <stdio.h> #include <stdlib.h> main() { int *p; //Dilwsi deikti int i,N; /* Diavasma Diastasis Pinaka */ printf("Dwse ti diastasi tou pinaka: "); scanf("%d",&N); $. ...
  4. 4. . 2. 4. $ /* Dynamiki Desmeysi mnimis */ p=malloc(sizeof(int)*N); if (!p) { printf("Adynamia desmeusis mnimis"); exit(0); } /* Kapoios Ypologismos ston pinaka */ for (i=0; i<N; i++) { p[i]=i*i*i; printf("np[%d]=%d",i,p[i]); } /* Apodesmeysi Mnimis */ free(p); } . 2. 4. $ $ $ 1 ( . . ! ! /=4 5,2,3,3) ) $ : 2 $ & $ $ ! … …… p 5 $ " ) . * !$ & ! $ ! %" . … 2 3 34 . 2. 4. $ 2 " % $ # " " . . . $ ! " $ 10 $& , $ ! %# . . %# $ $ $. !"# $ ! $ . $ $ % " ! $ $ %" " . " . 2. 5. $ $ ! ! $ . + $ $ & $ & $ $ : # 1 5 2 4 3 2 6 4 6 9 3 4 2 5 9 4 6 2 1 8 9 6 2 3 9 1 5 1 6 7 9 8 4 1 3 5 1 9 7 6 4 2pin[6] pin[1] pin[2] pin[3] pin[4] pin[5] pin[0] pin pin[0][4] pin[3][3] pin[6][0] M=7 ! /=6 "
  5. 5. . 2. 5. $ "" " ! " $ (pin) $ $ $ $ ! + $ ! ! ! $ $& , "# $ / $& . + ! $ # $& , "# $ $ $& # $& ! $ $ $ ) & " $ "# " : * !$ " " : 2 !$ " : $ int **p; p=malloc(sizeof(int*)*M); for (i=0; i<M; i++) p[i]=malloc(sizeof(int)*N); for (i=0; i<M; i++) free (p[i]); free(p); . 2. 5. $ ' " ! # ! $ : % *malloc_2d-array.c Deixnei pws desmeuoume xwro gia enan didiastato pinaka */ #include <stdio.h> #include <stdlib.h> main() { int **p; //Dilwsi diplou deikti-pinaka int i,j,M,N; /* Diavasma Diastasewn Pinaka */ printf("Dwse to plithos twn grammwn tou pinaka: "); scanf("%d",&M); printf("Dwse to plithos twn stilwn tou pinaka: "); scanf("%d",&N); $. ... . 2. 5. $ & /* Dynamiki Desmeysi mnimis */ p=malloc(sizeof(int*)*M); if (!p) { printf("Adynamia desmeusis mnimis"); exit(0); } for (i=0; i<M; i++) { p[i]=malloc(sizeof(int)*N); if (!p[i]) { printf("Adynamia desmeusis mnimis"); exit(0); } } $. ... . 2. 5. $ ' /* Kapoios Ypologismos ston pinaka */ for (i=0; i<M; i++) { for (j=0; j<N; j++) { p[i][j]=1+(i+j)%5; printf("%2d ",p[i][j]); } printf("n"); } /* Apodesmeysi Mnimis */ for (i=0; i<M; i++) free (p[i]); free(p); }
  6. 6. . 1. 0# $ 2 ! C $ " # $ : / . ! " & ! # ( ) " & "# (/). / # ! $ double xN / " !$. ! bytes ! $ # " / # . . 2. 2 & ' !& $ , & !& $ , $ $ NxN $ & !# $ $ 0. ! " $ $ 4x4 & !& $ : / $ ! $ $. & !& $ : / "# & !& $ /xN ( / ! 5..20). / $ $ $ $ [1..9] / & !& $ 4 /xN. ! / $ # ! $ $ ! $ ! & $. $ ! . 3. 2 & ' !& $ ( ) / $ ! ! ) ! # : 1. / ! ) $ $ $ 4. 2. / !$ & & $& & & . . 4. + $ 1 ! / ! ) $ ! $ % . %# 10 " 1 $ & : 1. / "# $ /=10 % " # ( & $ # ! % " ) 2. / % . " 1 1 : 1. / & # 2. / " ! ! " 1 . ) ! & " 1 $ % " " $ " ( $ « 10: 0 % " – () ! 5» ). $ $ & $. ! . 3. / # $ )& " 1 ( $ « 10: 0 % " – () ! 1»). 4. / ! ) % " $ $ ( $ « 10: 0 % " – () ! 2»). 3. / !$ & & 10 " 1 & % 4. / # .

×