2015-03-04 5 views
0

я получаю следующую ошибкупрограммирования сети Unix/сокет программирования

В функции w_Endline:

/home/prog2/in_out.c:113:19: error: assignment of read-only l  ocation ‘*(sent + (sizetype)(endlen * 1ul))’ 
     sent[endlen]='\0'; 


/home/prog2/in_out.c: In function ‘w_White’: 
/home/prog2/in_out.c:119:19: warning: initialization discards  ‘const’ qualifier from pointer target type 
     char* endlen=sent+whitelen; 

/home/prog2/in_out.c:120:6: warning: implicit declaration of  function ‘isspace’ [-Wimplicit-function-declaration] 
     while(endlen>sent &&isspace(*endlen)) 

FILES

1.in_out.c http://ideone.com/nI15F4

void w_Endline(const char* sent) 
{ 
    size_t endlen=strlen(sent)-1; 
    if(sent[endlen]=='\n') 
    sent[endlen]='\0'; 
} 
void w_White(const char* sent) 
{ 
    size_t whitelen=strlen(sent); 
    char* endlen=sent+whitelen; 
    while(endlen>sent &&isspace(*endlen)) 
    { 
    endlen='\0'; 
    --endlen; 
    } 
} 

2.in_out .h http://ideone.com/lDxxhY

ответ

0

Dont use const в w_Endline Если вы изменяете указатель, вам также нужен ctype.h header for isspace(). Также в функции w_White, если вы назначаете указатель const, указатель также должен быть const.

char* endlen=sent+whitelen; 

должен быть

const char* endlen=sent+whitelen;// because sent is const 

константным классификатор означает только для чтения

+0

Ну что исправили проблему с IN_OUT Но я получаю ошибку в другом имени файла query.c 3.query .c http://ideone.com/uXzoLc 4.query.h http://ideone.com/umPmWO – BDS

+0

query.c: В функции 'doQuery': query.c: 40: 15: error: передающий аргумент 1 из 'w_Endline' сбрасывает 'con st 'qualifi er из целевого типа указателя [-Werror] w_Endline (заголовок); ^В файле, включенном в query.c: 27: 0: in_out.h: 31: 6: note: expected 'char *', но аргумент имеет тип 'const char *' void w_Endline (char * sent); ^ cc1: все предупреждения рассматриваются как ошибки : рецепт для цели 'query.o' не удался марки: *** [query.o] Ошибка 1 – BDS

+0

@ Adarshjaya12 изменить in_out.h прототипы функций (удалить сопзЬ) в w_Endline, если вы собираетесь изменять аргументы – BsD

Смежные вопросы