为什么内存集函数不起作用?

Why memset function doesn't work?

本文关键字:不起作用 集函数 内存 为什么      更新时间:2023-10-16

为什么memset函数在C 功能中不起作用,用char指针?

void change(char* input){
  memset(input, 'a', strlen(input));
}
int main(){
  char* p = "foo";
  cout << p << endl;
  change(p);
  cout << p << endl;
}

您尝试修改字符串文字。字符串文字仅读取,您应该使用例如 const char*向它们声明指针时。

修改(或尝试修改(常数或仅读取数据导致不确定的行为

如果要修改字符串,则需要使用一个数组:

char p[] = "foo";