Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [C] Dubbi sui puntatori doppi

    Ho una matrice 4x4 dentro una funzione. Quando ritorno la matrice dalla funzione che ritorna un doppio puntatore, a cosa punta fisicamente il doppio puntatore. All'indirizzo della prima cella della matrice? Poi quando scorro le righe e le colonne, fisicamente come vengono scorse?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    1,326
    No se hai una cosa tipo int **matrice, matrice punta al puntatore *matrice, perché appunto è un puntatore a puntatore quindi scrivere printf("%d\n", *matrice) ti restituirà non il primo elemento della matrice ma - diciamo così - il puntatore alla sua prima riga, ossia il puntatore a cui punta. Se invece scrivi **matrice ti vedi restituito il primo elemento della matrice, perché dereferenzi il puntatore al puntatore.

    L'allocazione in memoria delle matrici in C è per righe ma tu puoi scorrerle o per righe o per colonne, dipende da come imposti i cicli iterativi

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il puntatore doppio punta ad un elenco di puntatori semplici.

    Ogni puntatore semplice punta ad un insieme di dati.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Questa è la funzione:

    double** Funzione(.....)
    {
    float **matr; // matrice 4x4 dinamica

    matr = new float*[4];

    for(int i=0; i<4; i++)
    {
    matr[i] = new float[4];
    }

    .....
    .....
    .....

    return matr;

    }

    In questo caso sono sempre valide le vostre risposte?

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì ... ma perche' non controlli tu la validita' delle risposte?
    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.