Ciao a tutti!
Mi e' venuto un piccolo dubbio con i puntatori in seguito ad un errore in compilazione che e' il seguente:
invalid operands to binary +
parola += (byte * sizeof(char));
codice:
char parola [MAXVALUE]
value=MAXVALUE;
while(value > 0 ){
//printf("%d \n" , size);
//printf("value:%d\n" , value);
if((byte=read(tcp_sk , parola , MAXVALUE-1)) < 0 ){
if(errno == EINTR){
continue;
}else{
return -1;
}
}else{
if( byte == 0){
//printf("qua\n");
break ;
}
}
/*Rga in cui compare l'errore in compilazione*/
parola += (byte * sizeof(char));
value -= byte;
size += byte ;
}
Il mio dubbio e' che se prendo il codice e creo una funzione non mi compare piu' l'errore!
Pero' parola += (byte * sizeof(char)) dovrebbe essere consentita nell'algebra dei puntatori (o forse ho detto una stronz****)
codice:
int read_msg(int sd ,char * msg){
int value , byte;
int size=0;
value=MAXVALUE;
while(value > 0 ){
printf("%d \n" , size);
//printf("value:%d\n" , value);
if((byte=read(sd , msg , MAXVALUE-1)) < 0 ){
if(errno == EINTR){
continue;
}else{
return -1;
}
}else{
if( byte == 0){
//printf("qua\n");
break ;
}
}
msg += (byte * sizeof(char));
value -= byte;
size += byte ;
}
return size;
}
Grazie a tutti ciaoooooooo