плюсов, и при работе с си либой просто передавать .data()
Но у меня возникла проблема с таким советом
#include <iostream>
void fun(char *result) {
std::string info = "hello world";
strncpy(result, info.data(), info.size());
result[info.size()] = '\0';
}
int main() {
std::string str{};
str.reserve(1000);
fun(str.data());
std::cout << "\nString: " << str << '\n';
char *str1 = (char*)malloc(1000*sizeof(char));
fun(str1);
std::cout << "\nChar *: " << str1 << '\n';
return 0;
}
String:
Char *: hello world
Как это понять и исправить?
В cppreference есть несколько перегрузок функций: https://en.cppreference.com/w/cpp/string/basic_string/data
И приписка: Modifying the character array accessed through the const overload of data has undefined behavior.
Следовательно вопрос, как получить именно такую перегрузку функции(без константности): CharT* data() noexcept;
жесть канеш) тупо все друг друга засирают) я столько токсик диалогов в жизни не читал. могу только посоветовать начинать любой совет со слов “ублюдок мать твою, а ну иди сюда говно собачье, сейчас я тебя научу на С++ писать”
Ну и восприятие у тебя действительности. Где ты это здесь прочел?
Обсуждают сегодня