2014-02-07 2 views
1

Мой компилятор дает следующее предупреждение:Компилятор утверждает указатель является сопзЬ, когда он не используется

inlinedata.h: 9: 6: Примечание: ожидаемый «символ *», но аргумент типа «Const обугленного *

int inline_data_receive(char *data,int length); 

Я не понимаю, почему он утверждает, что „данные“ является константным указателем, когда он не записываются как константный символ *.

+0

Как вы это называете? – ooga

ответ

5

Это говорит о том, что аргумент (данные, которые вы передаете в) есть const. Например, это может быть строковый литерал. Так что вместо того, чтобы сделать это:

ret = inline_data_receive("hello", len); 

сделать

char str[] = "hello"; 
ret = inline_data_receive(str, len); 

Вы должны сделать это таким образом, так как эта функция не гарантирует, что она не будет изменять строку ввода.

3

Компилятор жалуется, что вы передаете значение const char* в значение, обозначенное как char*. По существу следующие

const char* c = ...; 
inline_data_receive(c, strlen(c)); 

Компилятор жалуется, что c является const char*, но должна быть char* выстраиваться с аргументом data

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