PDA

Visualizza la versione completa : [C++] Aritmetica dei puntatori


AyFrank
03-02-2011, 20:40
Salve a tutti, avrei una richiesta di aiuto!

Diciamo che ho una matrice dinamica di puntatori a int di dimensioni N x N, e ho un puntatore a puntatori a int che si muove su di questa.

Diciamo pure che i passi del puntatore vengono letti via input. Trovandosi il puntatore nella cella X, per calcolarmi i rispettivi passi rimanenti avevo pensato ad una soluzione simile:

if (destra > (M+dim) - puntatore)

e a quanto pare gira, solo che non riesco ad applicare lo stesso ragionamento per controllare le celle rimanenti a sinistra, verso l'alto e verso il basso, qualche suggerimento?

Grazie in anticipo!

printfede
05-02-2011, 19:30
if (destra > (M+dim) - puntatore)
questa istruzione non mi è chiara e poi non ho capito bene il risultato che vuoi ottenere

p91paul
05-02-2011, 19:44
non puoi avere un indice r e uno c che contengono sempre rispettivamente la riga e la colonna a cui ti trovi?!così se r<n e c<n sei dentro?!

AyFrank
06-02-2011, 05:45
Originariamente inviato da printfede

if (destra > (M+dim) - puntatore)
questa istruzione non mi è chiara e poi non ho capito bene il risultato che vuoi ottenere
Destra è lo spostamento ricevuto da input che il puntatore deve fare sulla matrice, m+dim dovrebbe indicarmi la fine della matrice, quindi facendo fine - puntatore (che mi tiene traccia della posizione in cui si trova in quel momento) dovrei avere alla fine quante posizioni ho disponibili ancora sulla riga, visto che se non sbaglio il confronto fra due puntatori restituisce un intero. Ora io vorrei applicare lo stesso ragionamento in senso inverso e sulle colonne, ma riflettendoci credo sia un casino, perché dinamicamente le celle non vengono allocate in fila come nella memoria statica...


Originariamente inviato da p91paul
non puoi avere un indice r e uno c che contengono sempre rispettivamente la riga e la colonna a cui ti trovi?!così se r<n e c<n sei dentro?!
Effettivamente tenendo traccia delle righe e delle colonne risulterebbe molto più facile, ma vorrei svolgere la cosa con i puntatori...

Loading