Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Dubbio puntatori [C++]

  1. #1

    Dubbio puntatori [C++]

    Salve ragazzi, mi è venuto un dubbio un po' strano, cioè:
    codice:
    #include <iostream>
    using std::cout;
    using std::endl;
    
    int main()
    {
        int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
        
        char* p=(char*)&a[5];
        cout<<*p<<endl;
        system("PAUSE");
        return 0;
    }
    Se nella riga char* p=(char*)&a[5]; no considero &, che differenza c'e? Se nessuna mi potreste spiegarmi il motivo?
    L'"effetto collaterale" è lo stesso.
    Ringrazio tutti.
    --

  2. #2
    Utente di HTML.it L'avatar di Scara95
    Registrato dal
    Jul 2009
    residenza
    Zimella (VR)
    Messaggi
    2,590
    Con & ottieni l'indirizzo di a[5] e quindi p conterrà l'indirizzo di questo, senza conterrà il valore di a[5] perciò, quando andrai a deferenziare il puntatore non otterrai a[5] ma un valore indefinito, quello all'indirizzo 6 (a[5] = 6)
    "Quid enim est, quod contra vim sine vi fieri possit?" - Cicerone, Ad Familiares

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462

    Re: Dubbio puntatori [C++]

    Originariamente inviato da 00disaster00

    L'"effetto collaterale" è lo stesso.
    In che senso? Ovviamente avrai un errore di "access violation" (segmentation) ... se ti va bene.
    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.