Καταρχήν είναι κατανοητό αυτό εδώ το σχέδιο;

που αντιστοιχεί σε αυτόν εδώ τον κώδικα;
- Κώδικας: Επιλογή όλων
int n=10, *p = &n, **p = &p; // όπου 10 είναι Value στο σχέδιο
Συντονιστής: konnn

int n=10, *p = &n, **p = &p; // όπου 10 είναι Value στο σχέδιο
migf1 έγραψε:Επειδή το value και το bits είναι πεδία ενός union, άρα μοιράζονται την ίδια περιοχή μνήμης... αυτό κάνει το union, όλα τα πεδία του μοιράζονται την ίδια περιοχή μνήμης.
- Κώδικας: Επιλογή όλων
typedef union byte { // an unsigned byte represented as union
unsigned char value; // ... the numerical rerpesentation of the byte
Bits bits; // ... the bit representation of the byte
} Byte;
Άρα το .value και το .bits μοιράζονται την ίδια μνήμη, την οποία μνήμη μπορείς να την καλέσεις είτε γράφοντας: .value είτε .bits.bX

#include <stdio.h>
typedef union ptraddress {
int **pp; // address of p
unsigned long int paddr; // address of p expressed as unsigned long
unsigned long int *p; // p itself expressed as unsigend long
} PtrAddress;
// -------------------------------------------------------------------------------------
int main( void )
{
int n = 10, *p = &n;
PtrAddress ptraddress; // ή με αρχικοποίηση: ptraddress = { .pp = &p };
ptraddress.pp = &p;
printf("h dieythynsh toy p einai:\t%lu\n", ptraddress.paddr);
printf("o p periexei th dieythynsh:\t%lu\n", *(ptraddress.p) );
printf("h dieythynsh sthn opoia deixnei o p periexei thn timh:\t%d\n",
**ptraddress.pp );
return 0;
}
typedef union ptraddress {
int **pp; // address of p
unsigned long int paddr; // address of p expressed as unsigned long
} PtrAddress;
printf("h dieythynsh toy p einai:\t%lu\n", ptraddress.paddr);
typedef union ptraddress {
int **pp; // address of p
unsigned long int paddr; // address of p expressed as unsigned long
unsigned long int *p; // p itself expressed as unsigend long
} PtrAddress;
printf("o p periexei th dieythynsh:\t%lu\n", *(ptraddress.p) );
printf("h dieythynsh sthn opoia deixnei o p periexei thn timh:\t%d\n",
**ptraddress.pp );






migf1 έγραψε:Καλησπέρα, καλό ξύπνημα
Advanced ναι, αλλά ok ρε συ αυτά είναι αρκετά εξειδικευμένα κι εν πολλοίς αχρείαστα σε αυτή τη φάση... δεν είναι για να χάνουμε χρόνο σε αυτά (και να τα καταλάβεις τώρα, μέχρι να τύχει να τα χρησιμοποιήσεις, αν τύχει ποτέ δηλαδή, δεν θα θυμάσαι τίποτα). Ενώ τα strings π.χ. είναι πολύ πιο στοιχειώδη... ομοίως και οι πίνακες και οι δομές.
Είναι πολύ πιο χρήσιμο π.χ. να μάθεις πως να εισαγάγεις ένα στοιχείο σε ένα πίνακα. Και υποψιάζομαι πως δεν είναι τόσο εύκολο όσο ενδεχομένως πιστεύεις, π.χ. τι γίνεται αν ο πίνακας είναι ήδη γεμάτος; Αν δεν είναι γεμάτος, σε ποιο σημείο του θα εισαγάγεις το κάθε νέο στοιχείο του; Θα τον διατηρείς ταξινομημένο σε πραγματικό χρόνο ή όχι;
Έχει πολλά ερωτήματα που πρέπει να απαντηθούν πριν καν αποφασίσουμε πως θα τον ορίσουμε εξαρχής τον πίνακα (π.χ. θα έχει την ευελιξία να αυξομειώνει το μήκος του ανάλογα με το πλήθος των στοιχείων του ή θα είναι στατικός; )

