ciao a tutti ho un dubbio riguardo la sintassi del C
qual'è la differenza tra :
codice:char * p = {"uno" ,"due"} ; char *p [] = {"uno" , "due"} ; int i [] = {1,8} ; int i = {1,8} ;
??
grazie
ciao a tutti ho un dubbio riguardo la sintassi del C
qual'è la differenza tra :
codice:char * p = {"uno" ,"due"} ; char *p [] = {"uno" , "due"} ; int i [] = {1,8} ; int i = {1,8} ;
??
grazie
char *p...puntatore a carattere-->può rappresentare un array
char *p[]...puntatore ad array-->matrice
int i[] {1,8}...vettore di interi
int i{1,8} non ha senso
P.s. Il primo assegnamento non è valido
Ma la sai la differenza fra array e scalari?
ciao grazie della risposta ! anche secondo me la prima e la quarta sono senza senso , ma vuoi un po perchè non uso il C da tempo , vuoi perchè gcc non mi dava errori di compilazione , ci sono cascato!
grazie![]()
No, è un array di puntatori.Originariamente inviato da Marco1995
char *p[]...puntatore ad array-->matrice
effeffe
scusate , ma stiamo facendo un po di confusione ; quello di sopra è un vettore di puntatori , ma allora perchè
..questo è un errore di segmentazione di memoria ??????codice:int main (int argc, char *argv[]) // sto prendendo un vettore di puntatori in realtà { int i = 0 ; char *oArgv [argc] ; for (i = 1 ; i < argc -1 ;i++) { strcpy (oArgv[i],argv[i]); //errore }
scusate il doppio post![]()
Perché da nessuna parte stai allocando memoria per oArgv...
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Per inciso, ti ricordo che il codice va specificato tra tag [CODE] ... [/CODE], altrimenti perde l'indentazione. Per questa volta correggo io, in futuro ricordatene.![]()
Amaro C++, il gusto pieno dell'undefined behavior.
Certo ma facendo:No, è un array di puntatori.
puoi implementare una matricecodice:int *prova[10]; int m; for (m=0;m<10;m++) prova[m] = (int*)calloc(2,sizeof(int));
Certamente, non ho detto il contrario, ho solo fatto notare che non è un puntatore ad array ma un array di puntatori (sono due cose completamente diverse).Originariamente inviato da Marco1995
Certo ma facendo:
puoi implementare una matricecodice:int *prova[10]; int m; for (m=0;m<10;m++) prova[m] = (int*)calloc(2,sizeof(int));
effeffe