Visualizzazione dei risultati da 1 a 10 su 10

Discussione: [c]gestione memoria

  1. #1

    [c]gestione memoria

    Parlando di memorie, qual è la differenza tra segmento e offset?
    Cosa sono i puntatori far e huge?
    Se ho una variabile di tipo long,posso dichiarare un puntatore in questo modo:

    int *punt;

    o sono obbligato a dichiararlo così:

    long *punt;

  2. #2

  3. #3

  4. #4
    Il concetto di puntatore far/huge con segmento/offset puoi anche sotterrarlo. Si usava ai tempi del DOS, ora questi problemi non esistono piu'.

  5. #5
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486

    Re: [c]gestione memoria

    long *punt;

    Se scrivi

    int *punt;

    il compilatore lo considera un puntatore a int.
    ChReAn
    -------------------

    Slackware 9.1 powered

  6. #6

    Re: Re: [c]gestione memoria

    Originariamente inviato da ChReAn
    long *punt;

    Se scrivi

    int *punt;

    il compilatore lo considera un puntatore a int.
    ma se poi vado a puntare una variabile long mi da errore?

  7. #7
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486

    Re: Re: Re: [c]gestione memoria

    Originariamente inviato da matrics21
    ma se poi vado a puntare una variabile long mi da errore?
    Ehm... Mi sa che non ci siamo capiti.
    Se devi puntare a un long, dichiara il puntatore long.
    Se punti a un int, dichiara un puntatore int.
    Il compilatore non ti dà errore ma solo un warning: stai però molto attento al matching dei tipi di dati fra puntatore e dato puntato se vuoi evitarti spiacevoli inconvenienti.

    Ad esempio questo codice:

    codice:
      int i;
      long *punt;
      i = 3;
      punt = &i;
    
      printf ("%d\n", *punt);
    Compila con un solo warning con gcc, e se eseguito sembra funzionare, ma eviterei come la peste errori simili.
    ChReAn
    -------------------

    Slackware 9.1 powered

  8. #8
    Ok,grazie
    Per quanto riguarda la memoria invece?

  9. #9

    offset e segmenti

    Ciao,
    Il segmento è un' area di memoria riservata ad un processo; mentre un offset è una differenza... tra cosa?

    offset =posiz_attuale - indirizzo_iniziale

    es

    se il segmento di memoria inizia in 0010h
    e tu sei in 0015h all' ora l' offset è

    0010h-0015h=0005h

    Ciao
    Powered by MacOSX Lion

  10. #10
    Grazie

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.