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