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));
Il mio dubbio e' che se prendo il codice e creo una funzione non mi compare piu' l'errore!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 ; }
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

Rispondi quotando