Κοινή μνήμη

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
katerinaaa
Δημοσιεύσεις: 109
Εγγραφή: 28 Ιαν 2010 12:46

Κοινή μνήμη

Δημοσίευση από katerinaaa » 04 Νοέμ 2010 09:31

Γεια σας,
έχω δημιουργήσει μια struct

Κώδικας: Επιλογή όλων

typedef struct _Parking Parking;
struct _Parking
{
        int   park_pos;          
	char  name[15];		     
};
Parking *myParkings;
και την αποθηκεύω σε μια μνήμη

Κώδικας: Επιλογή όλων

char *data;
 shm_id = shmget( SHM_KEY, SHM_SIZE, 0666);
 
data= shmat( shm_id, NULL, 0);
 if( data == (char *) - 1 )
	print_error("shmat");
                  
myParkings = (Parking *)data;
όταν δημιουργώ ένα parking τότε καλώ μια συνάρτηση στην οποία εσωτερικά αυξάνω κάθε φορά το myParkings. όμως αργότερα για λόγους αναζήτησης χρειάζομαι να ξαναθέσω τον δείκτη στην αρχή της μνήμης. Πως μπορώ να το κάνω και δεδομένου αν ζητηθεί δημιουργία νέου πάρκινγκ να συνεχίσει κανονικά από τη θέση που έχει μείνει.

Και κάτι τελευταίο αν θέλω να χρησιμοποιήσω κι άλλον έναν δείκτη στη μνήμη που να δείχνει 100 θέσεις παρακάτω τότε το μόνο που αλλάζει είναι

Κώδικας: Επιλογή όλων

data= shmat( shm_id, NULL, 1000);
??

=========
Συγγνώμη για τις ερωτήσεις μου αν φαίνονται λίγο γελοίες αλλά δεν έχω ξανασχοληθεί με κοινή μνήμη.

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες