我必须编写一个函数,用字符串的内容填充指定长度的 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;
}
我的问题是关于终结者:它应该存在还是不存在?这个函数用在更广泛的代码中,有时当字符串需要被剪切时,我会遇到奇怪字符的问题。
关于正确程序的任何提示?