Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c] struttura dinamica

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258

    [c] struttura dinamica

    Per me il c è abbastanza misterioso, adesso ho fatto questa prova. Vedere il listato sotto.
    in questo modo ho creato una struttura dinamica?
    il modo di accedervi penso sia corretto, l'ho trovato su un libro.
    Ho però, questa domanda:
    la malloc non sa che stà creando una struttura, la malloc crea solo uno spazio di memoria contiguo, sizeof restituisce un numero....ma allora come è possibile accedere ai campi?? Il compilatore come fa a sapere questa informazione?

    codice:
    #include <stdio.h>
    int main()
    {
    
      struct s{
        char ch;
        int i;
        double f;
      };
    
    
      struct s *p;
      p = (struct s*)malloc(sizeof(struct s));
      p->i = 19;
      printf("%d", p->i);
      getch();
      return 0;
    }

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    forse questa scritta: p->i
    corrisponde solo a uno spostamento di una certa distanza, che il compilatore ha già imparato dalla dichiarazione della struttura, e quindi p->i è per come lo vede il compilatore solo una locazione di memoria che dista "tot" da p.

    cioè un indirizzo. qualcosa di questo tipo:


    |
    |---------ch(indirizzo di ch)
    |
    |-----------------------------i(indirizzo di i)
    |
    |-----------------------------------------------------f(ind. di f)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.