为什么memset函数不能使用char指针在c ++函数中工作?
void change(char* input){
memset(input, 'a', strlen(input));
}
int main(){
char* p = "foo";
cout << p << endl;
change(p);
cout << p << endl;
}
答案 0 :(得分:3)
您尝试修改字符串文字。字符串文字是只读的,你应该使用例如在声明指向它们的时候const char*
。
修改(或尝试修改)常量或只读数据会导致未定义的行为。
如果要修改字符串,则需要使用数组:
char p[] = "foo";