-
IAR,ARM,confusione su array di stringhe e puntatori
Ciao
credo che mi stia confondendo grossolanamente...dove sbaglio???
quale può essere il motivo per cui una assegnazione di stringhe ad elementi
di un array di *char mi modificaanche il valore delle precedenti
assegnazioni,nonostante l'indice punti correttamente al nuovo elemento da
aggiornare?
La cosa strana è che vengono modificati,3,4,8 valori in un colpo solo,come
se venissero puntati n arrays di char alla volta
ad ogni array di puntatori a char è stato precedentemente fatto
corrispondere un array di caratteri
Questo mi è sembrato il modo meno dispendioso di operazioni per il
micro,spero di non avere sbagliato proprio qui
riassumo:
char mydir_string[32][16];//alloco spazio per 16 stringhe da 32 bytes
char* myDirStr[16];//dichiaro 16 puntatori a char
//*******************************
main
{
unsigned char i,mypindex;
//associo puntatore a char ad array di char
for(i=0;i<16;i++){ myDirStr[i]= mydir_string[i]; }
mypindex=0;
//chiamo la funzione 8 volte,modificherà un char* fname
for(i=0;i<8;i++)
{
miafunzione( );// mi aggiorna il valore fname che è un char*
myDirStr[mypindex++]= fname;//ogni volta che esegue
//l'assegnazione mi cambia anche il valore delle assegn.
precedentemente fatte
}
}
al primo loop mi trovo
myDirStr[0]="cane";//OK
myDirStr[1]="";
myDirStr[2]="";
.....
al 2° loop mi trovo
myDirStr[0]="gatto";//<<errore!!doveva rimanere "cane"
myDirStr[1]="gatto";
myDirStr[2]="";
.....
al 3° loop mi trovo
myDirStr[0]="topo";";//<<errore!!doveva rimanere "cane"
myDirStr[1]="topo";";//<<errore!!doveva rimanere "gatto"
myDirStr[2]="topo";
dov'è l'errore???grazie
-
Re: IAR,ARM,confusione su array di stringhe e puntatori
Gentili signori non perdete tempo,era solo una banalissima assegnazione di
stringa che in C non si fa,lo sanno anche i ragazzini di 14 anni...
tipo char blisca[40];
blisca="sei una bestia";//<<<illegale
> myDirStr[mypindex++]= fname;//
nel debugger vedevo un valore che era il puntatore stesso,e non il
contenuto di ciò che era puntato
scusassero
Permessi di invio
- Non puoi inserire discussioni
- Non puoi inserire repliche
- Non puoi inserire allegati
- Non puoi modificare i tuoi messaggi
Regole del Forum