Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2016
    Messaggi
    1

    [C] matrice e puntatori

    Su un test universitario, ho trovato una domanda con questo codice:

    codice:
      
      int a[2][3]={{1,2,3},{4,5,6}};
      int *b=(int*)a;
      
      printf("%d\n", b[3])
    ho pensato si generasse un errore in esecuzione nell'uso di b[3],pensando che la matrice "a" fosse un puntatore a puntatori, ma in realtà stampa 4. Non riesco a capirne il perché, se dipende da come vengono create in memoria, rendendo possibile la comunicazione tra la prima riga e la seconda riga della matrice.
    Ultima modifica di walto; 27-01-2016 a 16:39

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Perché le matrici in memoria sono memorizzate come una sequenza di dati, essendo la memoria organizzata in modo lineare.
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.