割り当てられた長さのchar*バッファを文字列の内容で埋める関数を作成する必要があります。弦が長すぎる場合は、カットするだけです。バッファは私ではなく、私の関数のユーザーによって割り当てられます。私はこのようなことを試みました:
int writebuff(char* buffer, int length){
string text="123456789012345";
memcpy(buffer, text.c_str(),length);
//buffer[length]='\0';
return 1;
}
int main(){
char* buffer = new char[10];
writebuff(buffer,10);
cout << "After: "<<buffer<<endl;
}
私の質問はターミネーターについてです:それはそこにあるべきかどうか?この関数ははるかに広いコードで使用されており、文字列をカットする必要があるときに奇妙な文字で問題が発生するように見えることがあります。
従うべき正しい手順に関するヒントはありますか?