特定の関数について、関数内で文字列のコピーを作成し、これを操作したい - 何らかの奇妙な理由で、strcpy を動作させることができない (セグメンテーション違反が発生する) - arg を文字列として渡そうとした、これも機能しません (g++ は、char* が必要であるというエラーをスローします)
#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;
}
なぜこれが起こっているのか理解できません。
私の2つの質問は次のとおりです。
- これが発生する理由 - 簡単な修正方法はありますか?
- 関数に渡された文字列のローカルコピーを作成する最も簡単で効率的な方法は何ですか?
ありがとう!