Мне нужно написать функцию, которая заполняет буфер 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;
}
мой вопрос по терминатору: должно быть там или нет? Эта функция используется в гораздо более широком коде, и иногда кажется, что у меня возникают проблемы со странными символами, когда строку нужно разрезать.
Есть какие-нибудь подсказки относительно правильной процедуры?