对于某些函数,我想在函数中创建字符串的副本,然后对其进行操作 - 出于某种奇怪的原因,我无法让 strcpy 工作(给我一个分段错误) - 我也尝试将 arg 作为字符串传递,这也不起作用(g++ 抛出一个错误,说它需要一个字符 *)
#include <iostream>
#include <cstring>
using namespace std;
void copy_string(char* stri);
int main ()
{
copy_string("sample string");
return 0;
}
void copy_string(char* stri) {
char* stri_copy;
strcpy(stri_copy, stri);
cout << "String: " << stri_copy;
}
我不确定我理解为什么会这样。
所以我的两个问题是:
- 为什么会发生这种情况 - 有没有简单的解决方法?
- 创建传递给函数的字符串的本地副本的最简单/最有效的方法是什么?
谢谢!