PDA

View Full Version : [C] accesso array tramite puntatore dentro struct


nlazza87
27-04-2009, 11:18
Ciao ho questo problema:
Ho una struct che ha come campo un puntatore ad un array di caratteri,

typedef struct {
char *punt;
.....
}

char array[10];

p->punt=array;

l'array è dichiarato come variabile globale. Ho poi la funzione func (Nomestruct *p)
Come posso modificare i campi dell'array attraverso il puntatore alla struttura passato come parametro?
Una cosa tipo : *(p->punt)[i]=5; non è corretta....

||ElChE||88
27-04-2009, 11:24
Una cosa tipo : *(p->punt)[i]=5; non è corretta....
Con *(p->punt) dereferenzi il primo puntatore nell'array (un char), che poi usi ([i]) come se fosse un array (ovviamente non funziona).

Devi fare:

p->punt[i] = 5;

nlazza87
27-04-2009, 14:06
Ti ringrazio, ora funziona...un'altra cosa:

Io ho una funzione che riceve come parametro un puntatore void (void * buffer), dove buffer dovrebbe rappresentarmi un area di memoria da copiare. Come posso utilizzare la funzione con un array di char? Ovvero dato char vett [5]; e una chiamata func(vett) come posso accedere all'array tramite il puntatore buffer?