SlideShare une entreprise Scribd logo
1  sur  24
Télécharger pour lire hors ligne
H ΓΛΩΣΣΑ C
Μάθηµα 12:
∆υναµική ∆έσµευση Μνήµης
∆ηµήτρης Ψούνης
Περιεχόµενα Μαθήµατος
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
1. Στατική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
1. Η συνάρτηση malloc
2. Η συνάρτηση free
3. ∆έσµευση Μεταβλητής
4. ∆έσµευση Μονοδιάστατου Πίνακα
5. ∆έσµευση ∆ιδιάστατου Πίνακα
Β. Ασκήσεις
2∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
1. Στατική ∆έσµευση Μνήµης
Οι τρόποι που έχουµε δει για να δηλώνουµε έναν πίνακα (άρα και µία συµβολοσειρά) είναι να
δηλώσουµε εκ των προτέρων το µέγεθος του.
Το γεγονός αυτό κάνει το πρόγραµµα µας να µην είναι πολύ ευέλικτο.
Είναι συχνό, να καταλαβαίνουµε κατά τον χρόνο εκτέλεσης πόσο θα θέλουµε να είναι το
µέγεθος του πίνακα µας.
Ο τρόπος δήλωσης ενός πίνακα µε τον τρόπο αυτό, δεσµεύει στατικά τον χώρο µνήµης.
Συνεπώς µε τον όρο στατική δέσµευση µνήµης αναφερόµαστε στην δήλωση µιας µεταβλητής
µε τον συνηθισµένο τρόπο, π.χ.:
ή και στον συνηθισµένο τρόπο για την δήλωση ενός πίνακα, π.χ.:
3∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
int x;
int pinakas[10];
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
1. Η συνάρτηση malloc
Η συνάρτηση malloc:
∆εσµεύει δυναµικά τόσα bytes όσα και το όρισµα που της διοχετεύουµε.
Έχει οριστεί στην βιβλιοθήκη συναρτήσεων:
Επιστρέφει είτε έναν δείκτη στην αρχή του χώρου µνήµης που δεσµεύθηκε δυναµικά. Είτε
την τιµή NULL, αν δεν βρέθηκε κατάλληλος χώρος µνήµης.
Θα πρέπει πάντα να ελέγχουµε αν η malloc κατάφερε να δεσµεύσει τον χώρο και δεν
επέστρεψε NULL
Μέσω της συνάρτησης malloc, µπορούµε κατά τον χρόνο εκτέλεσης (όταν δηλαδή τρέχει το
πρόγραµµα) να βρίσκουµε τον χώρο µνήµης που θα χρειαστούν οι µεταβλητές.
4∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
void *malloc(size_t size)
stdlib.h
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
2. Η συνάρτηση free
Η συνάρτηση free:
Απελευθερώνει τα bytes που είχαµε δεσµεύσει δυναµικά µε την συνάρτηση malloc, στην
αρχή των οποίων δείχνει ο δείκτης ptr.
Έχει οριστεί στην βιβλιοθήκη συναρτήσεων:
Θα πρέπει να γνωρίζουµε ότι ΠΑΝΤΑ θα πρέπει να απελευθερώνουµε όση µνήµη
δεσµεύσαµε δυναµικά µε την malloc.
5∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
void free(void *ptr)
stdlib.h
Θεωρείται σηµαντικό προγραµµατιστικό λάθος να µην αποδεσµεύουµε τον χώρο που έχουµε
δεσµεύσει δυναµικά µε την malloc κάνοντας κατάλληλη χρήση της εντολής free.
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
3. ∆έσµευση Μεταβλητής
Για να δεσµεύσουµε µνήµη για µια µεταβλητή, δηλώνουµε έναν δείκτη στην µεταβλητή.
Έπειτα κάνουµε χρήση της malloc και δεσµεύουµε τόσο χώρο όσο πιάνει ο αντίστοιχος τύπος
δεδοµένων στην µνήµη.
Για να το κάνουµε αυτό χρησιµοποιούµε τον τελεστή sizeof
Χρησιµοποιούµε κανονικά την µεταβλητή µας µέσω του δείκτη.
∆εν ξεχνάµε ποτέ να αποδεσµεύσουµε τον χώρο που δεσµεύσαµε µε την free.
Ας δούµε ένα παράδειγµα για την χρήση µε µία µεταβλητή:
6∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
int *p; //Εδώ δηλώνουµε τον δείκτη στην µεταβλητή.
p=malloc(sizeof(int)); //∆εσµεύουµε δυναµικά την µνήµη για τον ακέραιο
*p=4; //Εδώ µπορούµε να κάνουµε χρήση του ακεραίου
free(p); //αποδεσµεύουµε τον χώρο µνήµης
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
3. ∆έσµευση Μεταβλητής
Τελείως αντίστοιχα θα δουλεύαµε και για έναν float:
ή για έναν long
Και εντελώς όµοια µπορούµε να κάνουµε το ίδιο και για οποιοδήποτε άλλο τύπο δεδοµένων
7∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
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
Όπου ελέγχουµε επιτόπου αν δεσµεύτηκε χώρος στη µνήµη και σε περίπτωση αποτυχίας
προκαλούµε βίαιο τερµατισµό στο πρόγραµµά µας.
8∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
p=malloc(sizeof(int)
if (!p)
{
printf(“Apotyxia Desmeysis Mnimis”);
exit(0);
}
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
3. ∆έσµευση Μεταβλητής
Συνολικά λοιπόν ένα πρόγραµµα που αναδεικνύει την δυναµική δέσµευση µνήµης για µία
µεταβλητή είναι το ακόλουθο
9∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
/*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. ∆έσµευση Μεταβλητής
Ο τρόπος που διαχειριστήκαµε την µεταβλητή (δήλωση δείκτη, δέσµευση χώρου, ανάθεση
τιµής) αντιστοιχεί στην εξής εικόνα της µνήµης:
10∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
… ……
∆είκτης p
5
Ο τρόπος χρήσης είναι ελαφρά ανισόρροπος. Η χρήση της δυναµικής δέσµευσης µνήµης
γίνεται συνήθως για τους πίνακες και όχι για µεταβλητές.
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
4. ∆έσµευση Μονοδιάστατου Πίνακα
Η πραγµατική χρησιµότητα της δυναµικής δέσµευσης µνήµης είναι η δυναµική δέσµευση
µνήµης για έναν πίνακα.
Κάνουµε χρήση της malloc και δεσµεύουµε τόσο χώρο όσο πιάνει ο αντίστοιχος τύπος
δεδοµένων (επί) το πλήθος των θέσεων του πίνακα
Για να το κάνουµε αυτό χρησιµοποιούµε τον τελεστή sizeof
Χρησιµοποιούµε κανονικά τον πίνακά µας όπως έχουµε µάθει.
∆εν ξεχνάµε ποτέ να αποδεσµεύσουµε τον χώρο που δεσµεύσαµε µε την free.
Βλέπουµε ένα παράδειγµα µε πίνακα ακεραίων:
Και αντίστοιχα δουλεύουµε για οποιοδήποτε άλλο τύπο δεδοµένων
11∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
int *p; //Εδώ δηλώνουµε τον δείκτη σε ακέραια µεταβλητή.
p=malloc(sizeof(int)*10); //∆εσµεύουµε δυναµικά χώρο για πίνακα 10 ακεραίων
p[3]=5; //Εδώ κάνουµε χρήση του πίνακα όπως έχουµε µάθει
free(p); //αποδεσµεύουµε τον χώρο µνήµης
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
4. ∆έσµευση Μονοδιάστατου Πίνακα
Το ακόλουθο πρόγραµµα επιδεικνύει έναν συνήθη κώδικα για την δυναµική δέσµευση ενός
µονοδιάστατου πίνακα:
12∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
/*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);
συνεχίζεται...
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
4. ∆έσµευση Μονοδιάστατου Πίνακα
13∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
/* 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. ∆έσµευση Μονοδιάστατου Πίνακα
Ο τρόπος που διαχειριστήκαµε την δέσµευση του πίνακα αντιστοιχεί στην εξής εικόνα της
µνήµης (π.χ. αν ο χρήστης εισήγαγε το Ν=4 και τις τιµές 5,2,3,3) φαίνεται στο σχήµα:
Και αντιστοιχεί στην κωδικοποίηση του πίνακα
14∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
… ……
∆είκτης p
5
Ο τρόπος χρήσης είναι ελαφρά ανισόρροπος. Η χρήση της δυναµικής δέσµευσης µνήµης
γίνεται συνήθως για τους πίνακες και όχι για µεταβλητές.
… 2 3 3
Ν
4
5 2 3 3
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
4. ∆έσµευση Μονοδιάστατου Πίνακα
Καταλαβαίνουµε ότι µε τον τρόπο αυτό µπορούµε να δεσµεύσουµε όσο χώρο θέλουµε κατά τον
χρόνο εκτέλεσης.
Π.χ. Μπορεί ο χρήστης να εισάγει ότι θέλει έναν πίνακα 10 ακεραίων, οπότε εµείς
προγραµµατιστικά µπορούµε να δεσµεύσουµε ακριβώς όσα δεδοµένα χρειαζόµαστε. Αυτό
ακριβώς είναι η δυναµική δέσµευση µνήµης σε αντίθεση µε την στατική δέσµευση µνήµης
που καθορίζουµε κατά το χρόνο µεταγλώττισης ποιο θα είναι το µέγεθος του πίνακα.
Αυτό είναι ιδιαίτερα χρήσιµο και µε τις συµβολοσειρές που το µέγεθος τους µπορεί να είναι
µεταβλητό και δεν θέλουµε να κάνουµε καταχρήσεις µε την µνήµη µας.
15∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
5. ∆έσµευση ∆ιδιάστατου Πίνακα
Αντίστοιχα µπορούµε να εργαστούµε για έναν διδιάστατο πίνακα.
Ένας διδιάστατος πίνακας µπορεί να ειδωθεί ως ένας πίνακας που περιέχει µονοδιάστατους
πίνακες:
16∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
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
στήλες
Α. Στατική και ∆υναµική ∆έσµευση Μνήµης
2. ∆υναµική ∆έσµευση Μνήµης
5. ∆έσµευση ∆ιδιάστατου Πίνακα
Με άλλα λόγια θέλουµε έναν πίνακα (pin) του οποίου κάθε στοιχείο θα είναι δείκτης!
Έτσι αντίστοιχα µε το γεγονός ότι για να δεσµεύσουµε δυναµικά έναν πίνακα ακεραίων,
δηλώνουµε έναν δείκτη σε ακέραιο και κάνουµε δέσµευση Ν ακεραίων.
Έτσι για να δεσµεύσουµε δυναµικά έναν πίνακα δεικτών ακεραίων, θα δηλώσουµε έναν
δείκτη σε δείκτη ακεραίων και κάνουµε δέσµευση Μ δεικτών ακεραίων!
Ο δείκτης σε δείκτη ακεραίου θα αναφέρεται ως διπλός δείκτης και θα δηλώνεται µε
την εντολή:
Η δέσµευση θα γίνεται µε τις ακόλουθες εντολές:
Και η αποδέσµευση θα γίνει µε τις εντολές:
17∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
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. ∆έσµευση ∆ιδιάστατου Πίνακα
Το ακόλουθο πρόγραµµα επιδεικνύει έναν συνήθη κώδικα για την δυναµική δέσµευση ενός
διδιάστατου πίνακα:
18∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
*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. ∆έσµευση ∆ιδιάστατου Πίνακα
19∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
/* 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. ∆έσµευση ∆ιδιάστατου Πίνακα
20∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
/* 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);
}
Γ. Ασκήσεις
1. Χώρος Αποθήκευσης ∆ιδιάστατου Πίνακα
21∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
Κατασκευάστε ένα πρόγραµµα C το οποίο να κάνει µια µελέτη του χώρου αποθήκευσης ενός
διδιάστατου πίνακα:
Να ζητάει από τον χρήστη να εισάγει το πλήθος των γραµµών (Μ) και το πλήθος των
στηλών (Ν).
Να δεσµεύει δυναµικά τον χώρο αποθήκευσης για έναν πίνακα double ΜxN
Να υπολογίζει το µέγεθος σε bytes που απαιτήθηκαν για την αποθήκευση του πίνακα και
να τυπώνει το αποτέλεσµα
Να αποδεσµεύει τον χώρο µνήµης που δεσµεύθηκε δυναµικά.
Γ. Ασκήσεις
2. Κάτω Τριγωνικός Πίνακας
22∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
Στα µαθηµατικά, ένας κάτω τριγωνικός πίνακας, είναι ένας πίνακας διάστασης NxN που τα
στοιχεία κάτω από την κύρια διαγώνιο είναι ίσα µε το 0. Για παράδειγµα ο ακόλουθος πίνακας
είναι ένας 4x4 κάτω τριγωνικός πίνακας:
Να κατασκευαστεί ένα πρόγραµµα το οποίο να διαχειρίζεται κάτω τριγωνικούς πίνακες:
Να δεσµεύει στατικά και να δηλώνει έναν κάτω τριγωνικό πίνακα Α διάστασης ΝxN (το Ν
να εισάγεται από το χρήστη µε τιµή 5..20). Να αρχικοποιεί τα στοιχεία του πίνακα µε
τυχαίους αριθµούς στο εύρος [1..9]
Να δεσµεύει δυναµικά έναν κάτω τριγωνικό πίνακα Β διάστασης ΝxN. Προσοχή! Να
δεσµευτεί χώρος µόνο για τα στοιχεία του πίνακα και όχι για τα στοιχεία που γνωρίζουµε
ότι δεν είναι πάντα µηδενικά!
Α
1 0 0 0
2 2 0 0
4 5 4 0
3 1 3 2
Γ. Ασκήσεις
3. Κάτω Τριγωνικός Πίνακας (συνέχεια)
23∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
Να επεκταθεί το πρόγραµµα της προηγούµενης εφαρµογής έτσι ώστε:
1. Να αντιγράφονται τα στοιχεία του πίνακα Α στον πίνακα Β.
2. Να γίνεται εκτύπωση των στοιχείων των δύο πινάκων.
Γ. Ασκήσεις
4. Ένας Πίνακας από Λέξεις
24∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
Να γραφεί πρόγραµµα το οποίο θα διαβάζει ακριβώς 10 λέξεις και θα τις αποθηκεύει σε µία
δυναµική δοµή δεδοµένων:
1. Να δηλώνει έναν πίνακα Ν=10 συµβολοσειρών (χωρίς να δεσµεύεται χώρος για κάθε
συµβολοσειρά)
2. Να διαβάζονται οι διαδοχικά οι λέξεις µε τον εξής τρόπο:
1. Να αποθηκεύεται σε έναν προσωρινό χώρο µνήµης
2. Να ελέγχεται ότι ο χρήστης έχει εισάγει λέξη. Στην εφαρµογή αυτή ως λέξη εννοούµε
µία συµβολοσειρά που αποτελείται από µόνο µικρούς λατινικούς χαρακτήρες
(χρησιµοποιείστε την συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10:
Χαρακτήρες και Συµβολοσειρές – Εφαρµογή 5» ). Σε αντίθετη περίπτωση να
τερµατίζει το πρόγραµµα.
3. Να δεσµεύεται χώρος στον πίνακα σύµφωνος µε το µήκος της λέξης
(χρησιµοποιείστε τη συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες
και Συµβολοσειρές – Εφαρµογή 1»).
4. Να αντιγράφεται η συµβολοσειρά στην αντίστοιχη θέση του πίνακα (χρησιµοποιείστε
τη συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και
Συµβολοσειρές – Εφαρµογή 2»).
3. Να γίνεται εκτύπωση των 10 λέξεων που διαβάστηκαν
4. Να αποδεσµεύεται ο χώρος στη µνήµη.

Contenu connexe

Tendances

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣDimitris Psounis
 
Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥDimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑDimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 Dimitris Psounis
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 Dimitris Psounis
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣDimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 Dimitris Psounis
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3Dimitris Psounis
 
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)Dimitris Psounis
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 Dimitris Psounis
 

Tendances (20)

ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 5 - ΔΟΜΕΣ ΕΠΑΝΑΛΗΨΗΣ
 
Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3 Η Γλώσσα C - Μάθημα 3
Η Γλώσσα C - Μάθημα 3
 
Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2Η Γλώσσα C - Μάθημα 2
Η Γλώσσα C - Μάθημα 2
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 15 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 16 - ΣΥΝΑΡΤΗΣΕΙΣ ΕΞΟΔΟΥ (ΕΚΤΥΠΩΣΗ)
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 
Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1Η Γλώσσα C - Μάθημα 1
Η Γλώσσα C - Μάθημα 1
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 1 - ΔΙΑΠΕΡΑΣΗ ΠΙΝΑΚΑ
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 2
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.5
ΠΛΗ10 ΜΑΘΗΜΑ 2.5ΠΛΗ10 ΜΑΘΗΜΑ 2.5
ΠΛΗ10 ΜΑΘΗΜΑ 2.5
 
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18 ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 18
 
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣΗ ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 7 - ΠΙΝΑΚΕΣ
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 2 - ΑΝΑΖΗΤΗΣΗ ΣΤΟΙΧΕΙΟΥ ΣΕ ΠΙΝΑΚΑ
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7 ΠΛΗ10 ΜΑΘΗΜΑ 2.7
ΠΛΗ10 ΜΑΘΗΜΑ 2.7
 
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
ΑΛΓΟΡΙΘΜΟΙ ΣΕ C - ΜΑΘΗΜΑ 3
 
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
Η Γλώσσα C - Μάθημα 2 (Εκτύπωση)
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4ΠΛΗ10 ΜΑΘΗΜΑ 2.4
ΠΛΗ10 ΜΑΘΗΜΑ 2.4
 
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6 ΠΛΗ10 ΜΑΘΗΜΑ 2.6
ΠΛΗ10 ΜΑΘΗΜΑ 2.6
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 3
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6
 

Plus de Dimitris Psounis

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)Dimitris Psounis
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣDimitris Psounis
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Dimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CDimitris Psounis
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6Dimitris Psounis
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)Dimitris Psounis
 

Plus de Dimitris Psounis (20)

Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 4 - ΚΛΑΣΕΙΣ ΚΑΙ ΑΝΑΦΟΡΕΣ (4διαφ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ (4δ)
 
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 3 - ΚΛΑΣΕΙΣ ΚΑΙ ΔΕΙΚΤΕΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣΗ ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ
 
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
Η ΓΛΩΣΣΑ C++ - ΜΑΘΗΜΑ 2 - ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΚΛΑΣΕΙΣ (4 διαφ)
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ CC++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C
 
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
C++ - ΜΑΘΗΜΑ 1 - ΕΙΣΑΓΩΓΗ ΚΑΙ ΣΧΕΣΗ ΜΕ ΤΗ C (4sl/p)
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 6
 
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
ΠΛΗ20 ΕΠΑΝΑΛΗΠΤΙΚΟ ΔΙΑΓΩΝΙΣΜΑ 5
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.2
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
ΠΛΗ10 ΚΑΡΤΕΣ ΜΑΘΗΜΑΤΟΣ 2.1
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8 (ΕΚΤΥΠΩΣΗ)
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 8
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 7 (ΕΚΤΥΠΩΣΗ)
 
ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33ΠΛΗ31 - ΤΕΣΤ 33
ΠΛΗ31 - ΤΕΣΤ 33
 
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ ΣΕ C - ΜΑΘΗΜΑ 6 (ΕΚΤΥΠΩΣΗ)
 

Dernier

Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - ΠένναΗ κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - ΠένναΣάσα Καραγιαννίδου - Πέννα
 
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτεραΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτεραssuser2bd3bc
 
Εξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptx
Εξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptxΕξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptx
Εξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptxntanavara
 
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdfΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdfssuser2f8893
 
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docx
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docxΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docx
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docxAreti Arvithi
 
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxtheologisgr
 
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...Areti Arvithi
 
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΜαρία Διακογιώργη
 
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptxΜοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx36dimperist
 
Εκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptx
Εκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptxΕκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptx
Εκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptx36dimperist
 
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥΜαρία Διακογιώργη
 
Παρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας Άρτας
Παρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας ΆρταςΠαρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας Άρτας
Παρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας Άρταςsdeartas
 
Σχολικός εκφοβισμός
Σχολικός                             εκφοβισμόςΣχολικός                             εκφοβισμός
Σχολικός εκφοβισμόςDimitra Mylonaki
 
Επιστολή στο Δήμαρχο και αρμόδιες υπηρεσίες
Επιστολή στο Δήμαρχο και αρμόδιες υπηρεσίεςΕπιστολή στο Δήμαρχο και αρμόδιες υπηρεσίες
Επιστολή στο Δήμαρχο και αρμόδιες υπηρεσίεςΜαρία Διακογιώργη
 
Παρουσίαση καλλιτεχνικού θεάματος
Παρουσίαση          καλλιτεχνικού θεάματοςΠαρουσίαση          καλλιτεχνικού θεάματος
Παρουσίαση καλλιτεχνικού θεάματοςDimitra Mylonaki
 
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΜαρία Διακογιώργη
 
Διαχείριση χρόνου παιδιών
Διαχείριση χρόνου                    παιδιώνΔιαχείριση χρόνου                    παιδιών
Διαχείριση χρόνου παιδιώνDimitra Mylonaki
 
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptxΞενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptxDimitraKarabali
 
ETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptx
ETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptxETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptx
ETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptxMertxu Ovejas
 

Dernier (20)

Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - ΠένναΗ κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
Η κυρία Αλφαβήτα και τα παιδιά της. Της Σάσας Καραγιαννίδου - Πέννα
 
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτεραΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
ΚΛΙΣΗ ΟΥΣΙΑΣΤΙΚΩΝ αρσενικιά θηλυκιά ουδέτερα
 
Εξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptx
Εξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptxΕξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptx
Εξερευνώντας τα μυστήρια του ουρανού-Παρουσίαση.pptx
 
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdfΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
ΒΑΣΙΚΕΣ ΔΕΞΙΟΤΗΤΕΣ ΚΑΙ ΤΕΧΝΙΚΕΣ ΣΥΜΒΟΥΛΕΥΤΙΚΗΣ ΙI (Σημειώσεις 3ης Εβδομάδας).pdf
 
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docx
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docxΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docx
ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ ΠΑΡΑΤΗΡΗΣΗ ΚΥΤΤΑΡΩΝ ΣΤΟ ΜΙΚΡΟΣΚΟΠΙΟ.docx
 
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docxΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
ΣΔΕ Ιεράπετρας ερωτηματολόγιο - ecomobility .docx
 
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
Παρατήρηση Κυττάρων στο Μικροσκόπιο _ παρουσίαση /Observation of cells under ...
 
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΤΑ ΚΕΙΜΕΝΑ ΤΗΣ ΠΑΡΟΥΣΙΑΣΗΣ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
 
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptxΜοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
Μοσχομύρισε το σχολείο. Πασχαλινά κουλουράκια από τους μαθητές της Γ΄ τάξης.pptx
 
Εκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptx
Εκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptxΕκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptx
Εκπαιδευτική Επίσκεψη στην Πάρνηθα ΑΠΡΙΛΙΟΣ 2024.pptx
 
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
ΑΛΜΠΟΥΜ ΦΩΤΟΓΡΑΦΙΩΝ ΑΠΟ ΤΙΣ ΔΡΑΣΕΙΣ ΤΩΝ ΜΑΘΗΤΩΝ ΚΑΤΑ ΤΗ ΔΙΑΡΚΕΙΑ ΤΟΥ ΔΙΑΓΩΝΙΣΜΟΥ
 
Παρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας Άρτας
Παρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας ΆρταςΠαρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας Άρτας
Παρουσίαση ομάδας ECOMOBILITY Σχολείου Δεύτερης Ευκαιρίας Άρτας
 
Σχολικός εκφοβισμός
Σχολικός                             εκφοβισμόςΣχολικός                             εκφοβισμός
Σχολικός εκφοβισμός
 
Επιστολή στο Δήμαρχο και αρμόδιες υπηρεσίες
Επιστολή στο Δήμαρχο και αρμόδιες υπηρεσίεςΕπιστολή στο Δήμαρχο και αρμόδιες υπηρεσίες
Επιστολή στο Δήμαρχο και αρμόδιες υπηρεσίες
 
Παρουσίαση καλλιτεχνικού θεάματος
Παρουσίαση          καλλιτεχνικού θεάματοςΠαρουσίαση          καλλιτεχνικού θεάματος
Παρουσίαση καλλιτεχνικού θεάματος
 
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITYΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
ΕΡΓΑΣΙΑ ΜΑΘΗΤΩΝ ΓΥΜΝΑΣΙΟΥ ΖΗΠΑΡΙΟΥ ΓΙΑ ΤΟ ΔΙΑΓΩΝΙΣΜΟ ECOMOBILITY
 
Στο μουσείο
Στο                                        μουσείοΣτο                                        μουσείο
Στο μουσείο
 
Διαχείριση χρόνου παιδιών
Διαχείριση χρόνου                    παιδιώνΔιαχείριση χρόνου                    παιδιών
Διαχείριση χρόνου παιδιών
 
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptxΞενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
Ξενάγηση στο ιστορικό κέντρο των Ιωαννίνων.pptx
 
ETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptx
ETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptxETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptx
ETIMOLOGÍA : EL NOMBRES DE LOS COLORES/ ΤΑ ΧΡΩΜΑΤΑ.pptx
 

Η ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 12

  • 1. H ΓΛΩΣΣΑ C Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης ∆ηµήτρης Ψούνης
  • 2. Περιεχόµενα Μαθήµατος Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 1. Στατική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 1. Η συνάρτηση malloc 2. Η συνάρτηση free 3. ∆έσµευση Μεταβλητής 4. ∆έσµευση Μονοδιάστατου Πίνακα 5. ∆έσµευση ∆ιδιάστατου Πίνακα Β. Ασκήσεις 2∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
  • 3. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 1. Στατική ∆έσµευση Μνήµης Οι τρόποι που έχουµε δει για να δηλώνουµε έναν πίνακα (άρα και µία συµβολοσειρά) είναι να δηλώσουµε εκ των προτέρων το µέγεθος του. Το γεγονός αυτό κάνει το πρόγραµµα µας να µην είναι πολύ ευέλικτο. Είναι συχνό, να καταλαβαίνουµε κατά τον χρόνο εκτέλεσης πόσο θα θέλουµε να είναι το µέγεθος του πίνακα µας. Ο τρόπος δήλωσης ενός πίνακα µε τον τρόπο αυτό, δεσµεύει στατικά τον χώρο µνήµης. Συνεπώς µε τον όρο στατική δέσµευση µνήµης αναφερόµαστε στην δήλωση µιας µεταβλητής µε τον συνηθισµένο τρόπο, π.χ.: ή και στον συνηθισµένο τρόπο για την δήλωση ενός πίνακα, π.χ.: 3∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης int x; int pinakas[10];
  • 4. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 1. Η συνάρτηση malloc Η συνάρτηση malloc: ∆εσµεύει δυναµικά τόσα bytes όσα και το όρισµα που της διοχετεύουµε. Έχει οριστεί στην βιβλιοθήκη συναρτήσεων: Επιστρέφει είτε έναν δείκτη στην αρχή του χώρου µνήµης που δεσµεύθηκε δυναµικά. Είτε την τιµή NULL, αν δεν βρέθηκε κατάλληλος χώρος µνήµης. Θα πρέπει πάντα να ελέγχουµε αν η malloc κατάφερε να δεσµεύσει τον χώρο και δεν επέστρεψε NULL Μέσω της συνάρτησης malloc, µπορούµε κατά τον χρόνο εκτέλεσης (όταν δηλαδή τρέχει το πρόγραµµα) να βρίσκουµε τον χώρο µνήµης που θα χρειαστούν οι µεταβλητές. 4∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης void *malloc(size_t size) stdlib.h
  • 5. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 2. Η συνάρτηση free Η συνάρτηση free: Απελευθερώνει τα bytes που είχαµε δεσµεύσει δυναµικά µε την συνάρτηση malloc, στην αρχή των οποίων δείχνει ο δείκτης ptr. Έχει οριστεί στην βιβλιοθήκη συναρτήσεων: Θα πρέπει να γνωρίζουµε ότι ΠΑΝΤΑ θα πρέπει να απελευθερώνουµε όση µνήµη δεσµεύσαµε δυναµικά µε την malloc. 5∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης void free(void *ptr) stdlib.h Θεωρείται σηµαντικό προγραµµατιστικό λάθος να µην αποδεσµεύουµε τον χώρο που έχουµε δεσµεύσει δυναµικά µε την malloc κάνοντας κατάλληλη χρήση της εντολής free.
  • 6. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 3. ∆έσµευση Μεταβλητής Για να δεσµεύσουµε µνήµη για µια µεταβλητή, δηλώνουµε έναν δείκτη στην µεταβλητή. Έπειτα κάνουµε χρήση της malloc και δεσµεύουµε τόσο χώρο όσο πιάνει ο αντίστοιχος τύπος δεδοµένων στην µνήµη. Για να το κάνουµε αυτό χρησιµοποιούµε τον τελεστή sizeof Χρησιµοποιούµε κανονικά την µεταβλητή µας µέσω του δείκτη. ∆εν ξεχνάµε ποτέ να αποδεσµεύσουµε τον χώρο που δεσµεύσαµε µε την free. Ας δούµε ένα παράδειγµα για την χρήση µε µία µεταβλητή: 6∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης int *p; //Εδώ δηλώνουµε τον δείκτη στην µεταβλητή. p=malloc(sizeof(int)); //∆εσµεύουµε δυναµικά την µνήµη για τον ακέραιο *p=4; //Εδώ µπορούµε να κάνουµε χρήση του ακεραίου free(p); //αποδεσµεύουµε τον χώρο µνήµης
  • 7. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 3. ∆έσµευση Μεταβλητής Τελείως αντίστοιχα θα δουλεύαµε και για έναν float: ή για έναν long Και εντελώς όµοια µπορούµε να κάνουµε το ίδιο και για οποιοδήποτε άλλο τύπο δεδοµένων 7∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης 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); //αποδεσµεύουµε τον χώρο µνήµης
  • 8. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 3. ∆έσµευση Μεταβλητής Πρέπει πάντα να ελέγχουµε αν η εκτέλεση της malloc πέτυχε (δηλαδή ότι δεσµευτηκε ο απαιτούµενος χώρος στη µνήµη) Αυτό γίνεται µε τον έλεγχο της επιστρεφόµενης τιµής: Αν είναι NULL τότε είχαµε αποτυχία στη δέσµευση της µνήµης Αν δεν είναι NULL τότε όλα πήγαν καλά. Θα ακολουθήσουµε και την ακόλουθη µορφή όταν θα δεσµεύουµε τη µνήµη µε την malloc Όπου ελέγχουµε επιτόπου αν δεσµεύτηκε χώρος στη µνήµη και σε περίπτωση αποτυχίας προκαλούµε βίαιο τερµατισµό στο πρόγραµµά µας. 8∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης p=malloc(sizeof(int) if (!p) { printf(“Apotyxia Desmeysis Mnimis”); exit(0); }
  • 9. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 3. ∆έσµευση Μεταβλητής Συνολικά λοιπόν ένα πρόγραµµα που αναδεικνύει την δυναµική δέσµευση µνήµης για µία µεταβλητή είναι το ακόλουθο 9∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης /*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); }
  • 10. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 3. ∆έσµευση Μεταβλητής Ο τρόπος που διαχειριστήκαµε την µεταβλητή (δήλωση δείκτη, δέσµευση χώρου, ανάθεση τιµής) αντιστοιχεί στην εξής εικόνα της µνήµης: 10∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης … …… ∆είκτης p 5 Ο τρόπος χρήσης είναι ελαφρά ανισόρροπος. Η χρήση της δυναµικής δέσµευσης µνήµης γίνεται συνήθως για τους πίνακες και όχι για µεταβλητές.
  • 11. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 4. ∆έσµευση Μονοδιάστατου Πίνακα Η πραγµατική χρησιµότητα της δυναµικής δέσµευσης µνήµης είναι η δυναµική δέσµευση µνήµης για έναν πίνακα. Κάνουµε χρήση της malloc και δεσµεύουµε τόσο χώρο όσο πιάνει ο αντίστοιχος τύπος δεδοµένων (επί) το πλήθος των θέσεων του πίνακα Για να το κάνουµε αυτό χρησιµοποιούµε τον τελεστή sizeof Χρησιµοποιούµε κανονικά τον πίνακά µας όπως έχουµε µάθει. ∆εν ξεχνάµε ποτέ να αποδεσµεύσουµε τον χώρο που δεσµεύσαµε µε την free. Βλέπουµε ένα παράδειγµα µε πίνακα ακεραίων: Και αντίστοιχα δουλεύουµε για οποιοδήποτε άλλο τύπο δεδοµένων 11∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης int *p; //Εδώ δηλώνουµε τον δείκτη σε ακέραια µεταβλητή. p=malloc(sizeof(int)*10); //∆εσµεύουµε δυναµικά χώρο για πίνακα 10 ακεραίων p[3]=5; //Εδώ κάνουµε χρήση του πίνακα όπως έχουµε µάθει free(p); //αποδεσµεύουµε τον χώρο µνήµης
  • 12. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 4. ∆έσµευση Μονοδιάστατου Πίνακα Το ακόλουθο πρόγραµµα επιδεικνύει έναν συνήθη κώδικα για την δυναµική δέσµευση ενός µονοδιάστατου πίνακα: 12∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης /*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); συνεχίζεται...
  • 13. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 4. ∆έσµευση Μονοδιάστατου Πίνακα 13∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης /* 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); }
  • 14. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 4. ∆έσµευση Μονοδιάστατου Πίνακα Ο τρόπος που διαχειριστήκαµε την δέσµευση του πίνακα αντιστοιχεί στην εξής εικόνα της µνήµης (π.χ. αν ο χρήστης εισήγαγε το Ν=4 και τις τιµές 5,2,3,3) φαίνεται στο σχήµα: Και αντιστοιχεί στην κωδικοποίηση του πίνακα 14∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης … …… ∆είκτης p 5 Ο τρόπος χρήσης είναι ελαφρά ανισόρροπος. Η χρήση της δυναµικής δέσµευσης µνήµης γίνεται συνήθως για τους πίνακες και όχι για µεταβλητές. … 2 3 3 Ν 4 5 2 3 3
  • 15. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 4. ∆έσµευση Μονοδιάστατου Πίνακα Καταλαβαίνουµε ότι µε τον τρόπο αυτό µπορούµε να δεσµεύσουµε όσο χώρο θέλουµε κατά τον χρόνο εκτέλεσης. Π.χ. Μπορεί ο χρήστης να εισάγει ότι θέλει έναν πίνακα 10 ακεραίων, οπότε εµείς προγραµµατιστικά µπορούµε να δεσµεύσουµε ακριβώς όσα δεδοµένα χρειαζόµαστε. Αυτό ακριβώς είναι η δυναµική δέσµευση µνήµης σε αντίθεση µε την στατική δέσµευση µνήµης που καθορίζουµε κατά το χρόνο µεταγλώττισης ποιο θα είναι το µέγεθος του πίνακα. Αυτό είναι ιδιαίτερα χρήσιµο και µε τις συµβολοσειρές που το µέγεθος τους µπορεί να είναι µεταβλητό και δεν θέλουµε να κάνουµε καταχρήσεις µε την µνήµη µας. 15∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης
  • 16. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 5. ∆έσµευση ∆ιδιάστατου Πίνακα Αντίστοιχα µπορούµε να εργαστούµε για έναν διδιάστατο πίνακα. Ένας διδιάστατος πίνακας µπορεί να ειδωθεί ως ένας πίνακας που περιέχει µονοδιάστατους πίνακες: 16∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης 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 στήλες
  • 17. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 5. ∆έσµευση ∆ιδιάστατου Πίνακα Με άλλα λόγια θέλουµε έναν πίνακα (pin) του οποίου κάθε στοιχείο θα είναι δείκτης! Έτσι αντίστοιχα µε το γεγονός ότι για να δεσµεύσουµε δυναµικά έναν πίνακα ακεραίων, δηλώνουµε έναν δείκτη σε ακέραιο και κάνουµε δέσµευση Ν ακεραίων. Έτσι για να δεσµεύσουµε δυναµικά έναν πίνακα δεικτών ακεραίων, θα δηλώσουµε έναν δείκτη σε δείκτη ακεραίων και κάνουµε δέσµευση Μ δεικτών ακεραίων! Ο δείκτης σε δείκτη ακεραίου θα αναφέρεται ως διπλός δείκτης και θα δηλώνεται µε την εντολή: Η δέσµευση θα γίνεται µε τις ακόλουθες εντολές: Και η αποδέσµευση θα γίνει µε τις εντολές: 17∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης 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);
  • 18. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 5. ∆έσµευση ∆ιδιάστατου Πίνακα Το ακόλουθο πρόγραµµα επιδεικνύει έναν συνήθη κώδικα για την δυναµική δέσµευση ενός διδιάστατου πίνακα: 18∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης *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); συνεχίζεται...
  • 19. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 5. ∆έσµευση ∆ιδιάστατου Πίνακα 19∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης /* 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); } } συνεχίζεται...
  • 20. Α. Στατική και ∆υναµική ∆έσµευση Μνήµης 2. ∆υναµική ∆έσµευση Μνήµης 5. ∆έσµευση ∆ιδιάστατου Πίνακα 20∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης /* 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); }
  • 21. Γ. Ασκήσεις 1. Χώρος Αποθήκευσης ∆ιδιάστατου Πίνακα 21∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης Κατασκευάστε ένα πρόγραµµα C το οποίο να κάνει µια µελέτη του χώρου αποθήκευσης ενός διδιάστατου πίνακα: Να ζητάει από τον χρήστη να εισάγει το πλήθος των γραµµών (Μ) και το πλήθος των στηλών (Ν). Να δεσµεύει δυναµικά τον χώρο αποθήκευσης για έναν πίνακα double ΜxN Να υπολογίζει το µέγεθος σε bytes που απαιτήθηκαν για την αποθήκευση του πίνακα και να τυπώνει το αποτέλεσµα Να αποδεσµεύει τον χώρο µνήµης που δεσµεύθηκε δυναµικά.
  • 22. Γ. Ασκήσεις 2. Κάτω Τριγωνικός Πίνακας 22∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης Στα µαθηµατικά, ένας κάτω τριγωνικός πίνακας, είναι ένας πίνακας διάστασης NxN που τα στοιχεία κάτω από την κύρια διαγώνιο είναι ίσα µε το 0. Για παράδειγµα ο ακόλουθος πίνακας είναι ένας 4x4 κάτω τριγωνικός πίνακας: Να κατασκευαστεί ένα πρόγραµµα το οποίο να διαχειρίζεται κάτω τριγωνικούς πίνακες: Να δεσµεύει στατικά και να δηλώνει έναν κάτω τριγωνικό πίνακα Α διάστασης ΝxN (το Ν να εισάγεται από το χρήστη µε τιµή 5..20). Να αρχικοποιεί τα στοιχεία του πίνακα µε τυχαίους αριθµούς στο εύρος [1..9] Να δεσµεύει δυναµικά έναν κάτω τριγωνικό πίνακα Β διάστασης ΝxN. Προσοχή! Να δεσµευτεί χώρος µόνο για τα στοιχεία του πίνακα και όχι για τα στοιχεία που γνωρίζουµε ότι δεν είναι πάντα µηδενικά! Α 1 0 0 0 2 2 0 0 4 5 4 0 3 1 3 2
  • 23. Γ. Ασκήσεις 3. Κάτω Τριγωνικός Πίνακας (συνέχεια) 23∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης Να επεκταθεί το πρόγραµµα της προηγούµενης εφαρµογής έτσι ώστε: 1. Να αντιγράφονται τα στοιχεία του πίνακα Α στον πίνακα Β. 2. Να γίνεται εκτύπωση των στοιχείων των δύο πινάκων.
  • 24. Γ. Ασκήσεις 4. Ένας Πίνακας από Λέξεις 24∆ηµήτρης Ψούνης, Η Γλώσσα C, Μάθηµα 12: ∆υναµική ∆έσµευση Μνήµης Να γραφεί πρόγραµµα το οποίο θα διαβάζει ακριβώς 10 λέξεις και θα τις αποθηκεύει σε µία δυναµική δοµή δεδοµένων: 1. Να δηλώνει έναν πίνακα Ν=10 συµβολοσειρών (χωρίς να δεσµεύεται χώρος για κάθε συµβολοσειρά) 2. Να διαβάζονται οι διαδοχικά οι λέξεις µε τον εξής τρόπο: 1. Να αποθηκεύεται σε έναν προσωρινό χώρο µνήµης 2. Να ελέγχεται ότι ο χρήστης έχει εισάγει λέξη. Στην εφαρµογή αυτή ως λέξη εννοούµε µία συµβολοσειρά που αποτελείται από µόνο µικρούς λατινικούς χαρακτήρες (χρησιµοποιείστε την συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και Συµβολοσειρές – Εφαρµογή 5» ). Σε αντίθετη περίπτωση να τερµατίζει το πρόγραµµα. 3. Να δεσµεύεται χώρος στον πίνακα σύµφωνος µε το µήκος της λέξης (χρησιµοποιείστε τη συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και Συµβολοσειρές – Εφαρµογή 1»). 4. Να αντιγράφεται η συµβολοσειρά στην αντίστοιχη θέση του πίνακα (χρησιµοποιείστε τη συνάρτηση που κατασκευάσαµε στο «Μάθηµα 10: Χαρακτήρες και Συµβολοσειρές – Εφαρµογή 2»). 3. Να γίνεται εκτύπωση των 10 λέξεων που διαβάστηκαν 4. Να αποδεσµεύεται ο χώρος στη µνήµη.