|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
[C]problemi con la scansione di array di tipi non primitivi
se io ho un array di tipi non primitivi definiti con delle struct e lo voglio scorrere,il compilatore mi dà errore se faccio un
while(array_di_tipo[i] != NULL){esegui...} mi dice-->"invalid operands to binary !=" metodi alternativi? thanxalot |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
Se hai un array, saprai pure la dimensione, no? Fai un ciclo for.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
void list(t_mat* insieme[]){
int i; t_mat* temp; i = 0; temp = calloc(1,sizeof (*temp)); while(insieme[i] != 0){ temp = insieme[i]; printf("%s(%d;%d)\n",temp->nomemat,temp->r,temp->c); i++; } } il metodo dovrebbe stampare nome righee colonne della matrice,adesso compila,ma da un segmentation fault che non so bene da dove arrivi... |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Ah, allora è un array di puntatori!
Quote:
Comunque sei sicuro che nell'array ad un certo punto ci sia un puntatore NULL (che fa quindi da terminatore dell'array)??
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#5 |
Member
Iscritto dal: Mar 2006
Messaggi: 131
|
void list(t_mat insieme[],int lung){
int i = 0; while(i != lung){ printf("%s(%d;%d)\n",insieme[i].nomemat,insieme[i].r,insieme[i].c); i++; } } alla fine l'ho risolta così perchè coi puntatori facevo confusione,non c'è un modo simile per evitare tutte le volte di metterci il parametro con il numero degli elementi inseriti? |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:10.