Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di wino_7
    Registrato dal
    Dec 2006
    Messaggi
    537

    [C] vettore di puntatori

    Ragazzi non riesco a capire perchè le dimensioni stamoate non mi tornano.

    Codice PHP:
    #include <stdio.h>

    int main(int argcchar *argv[])
    {

        
    char* array[4] = {"Bengala""Circeo""Telescopio""Uni"};
        
        
    printf("Grandezza di array : %d\n"sizeof(array));
        
    printf("Grandezza di array[0] : %d\n"sizeof(array[0]));
        
    printf("Grandezza di char : %d\n"sizeof(char));
        
        
    system("PAUSE");
        return 
    0;


    Ecco la stampa:

    Codice PHP:
    Grandezza di array : 16
    Grandezza di 
    array[0] : 4
    Grandezza di char 

    Perchè la prima grandezza stampata è 16 se un carattere occupa 1 byte ??
    Non dovrebbe essere 4 ?

  2. #2
    Come dici tu è un vettore di puntatori, quindi devi dividere per le dimensioni di un puntatore.
    Codice PHP:
    #include <stdio.h> 

    int main() 


        const 
    char* array[] = {"Bengala""Circeo""Telescopio""Uni"}; 
         
        
    printf("Grandezza di array : %lu;\n"sizeof(array)/sizeof (char *)); 
        
    printf("Grandezza di array : %lu;\n"sizeof(array)/sizeof (array[0])); 
         
        return 
    0



  3. #3
    Utente bannato
    Registrato dal
    Apr 2008
    Messaggi
    196

    Re: [C] vettore di puntatori

    Originariamente inviato da wino_7

    Perchè la prima grandezza stampata è 16 se un carattere occupa 1 byte ??
    Non dovrebbe essere 4 ?
    Dipende anche dal computer in cui lo fai girare..

  4. #4
    aggiungi
    codice:
        printf("Grandezza di char : %d\n", sizeof(char *));
    e capisci da dove viene il 4.

    ciao
    sergio

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Per un solo puntatore e' 4 ma per 4 puntatori e' 4x4 = 16
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.