PDA

View Full Version : [C++] Come va dichiarato un puntatore...


sangueimpazzito
26-08-2004, 16:45
Ciao ragazzi.
Scusate la domadna niubba...
Come va dichiarato un puntatore che punta al primo elemento di un array a due dimensioni?!?
Grazie a tutti e scusate di nuovo...
:ave:

ilsensine
26-08-2004, 16:50
int array[dim_x][dim_y];

"array" è in realtà un puntatore.

sangueimpazzito
26-08-2004, 18:21
Originariamente inviato da ilsensine
int array[dim_x][dim_y];

"array" è in realtà un puntatore.

:doh:
Vero...

Fenomeno85
26-08-2004, 18:28
infatti negli array il nome è un puntatore :) .. infatti se lo vuoi mandare a una funzione basta che mandi come parametro il nome :)

~§~ Sempre E Solo Lei ~§~

sangueimpazzito
28-08-2004, 10:44
Dunque...
Problema numero due...
Ho un array di puntatori
char * A[9]
Alcuni degli elementi di A puntano agli elementi (di una matrice) che hanno come valore 'X'.
Gli altri, cioè le posizioni non usate di A, devono essere a 0.
Come faccio a farle essere 0?!?

Avevo pensato di fare un ciclo alla fine che mi riempisse le posizioni vuote con 0 facendo
A[i]=0;
ma quando vado a visualizzare l'array e dereferenzio gli 0 mi va in Segmentation Fault.
:cry:
Grazie per la disponibilità.
;)

anx721
28-08-2004, 13:57
Prima di deferenziare controlla che A[i] non sia NULL oppure fa puntare le posizioni vuote di A[i] ad una variabile char che contiene un carattere per indicare che quella posizione è vuota oppure che contiene il carattere vuoto '\0',

ciao

sangueimpazzito
28-08-2004, 14:52
Originariamente inviato da anx721
Prima di deferenziare controlla che A[i] non sia NULL oppure fa puntare le posizioni vuote di A[i] ad una variabile char che contiene un carattere per indicare che quella posizione è vuota oppure [B]che contiene il carattere vuoto '\0'[\B]

Ho fatto proprio così.
Il fatto è che mi sembra una soluzione alquanto "sporca" e volevo sapere se c'era qualcosa di più elegante.
:asd:
Grazie dell'interessamento.
;)

anx721
28-08-2004, 14:59
Visto che A è un array di puntatori, io metterei nelle posizioni vuote un bel NULL, ovvero 0, ma tanto vale scrivere NULL. Poi, quando accedi, prima di deferenziare controlli se è NULL o meno.

Se le posizioni non vuote sono tutte contigue all'inizio puoi anche impostare a NULL solo la prima posizione vuota per trasformarla in un marcatore di fine lista.

sangueimpazzito
28-08-2004, 15:24
Originariamente inviato da anx721
Visto che A è un array di puntatori, io metterei nelle posizioni vuote un bel NULL, ovvero 0, ma tanto vale scrivere NULL. Poi, quando accedi, prima di deferenziare controlli se è NULL o meno.


Ma oltre ad essere im array di puntatori, è anche un array char di puntatori.
:boh:

anx721
28-08-2004, 15:38
è un array di puntatori a char, quindi un array di puntatori, perche le soluzioni che ti ho proposto non vanno bene?

sangueimpazzito
28-08-2004, 15:58
Originariamente inviato da anx721
è un array di puntatori a char, quindi un array di puntatori, perche le soluzioni che ti ho proposto non vanno bene?

Non dubito della validità delle tue soluzioni.
Dubito della mia capacità di implementarle...
Ci sto lavorando...
:asd: