我必須聲明緩衝const char* buf;
分配新的大小爲const char *用memset()
後來我想用memset重新分配大小
buffer_len = 1024;
memset(buf, '\0', buffer_len);
buf[strlen(buf)-1]='\0';
給出了錯誤:
client.cpp:73:30: error: invalid conversion from ‘const void*’ to ‘void*’ [-fpermissive]
In file included from client.cpp:2:0:
/usr/include/string.h:62:14: error: initializing argument 1 of ‘void* memset(void*, int, size_t)’ [-fpermissive]
client.cpp:75:21: error: assignment of read-only location ‘*(buf + (((sizetype)strlen(buf)) + -1u))’
我知道這是由於const
但沒有任何替代方案,或者是常量執行它的事件呢?
你爲什麼要使用常量,如果你想改變緩衝? –
如果你寫的代碼,我建議試圖要擺脫'的char *'和舊的C風格prtogtamming離開反正。改用'std :: string'。 – olevegard
是代碼C還是C++? –