Следующий код (часть цикла запрос-ответ на сетевом сервере) работает большую часть времени, но иногда не работает, так как клиент сообщит, что получил какую-то странную другую строку (казалось бы, случайные байты из расположений поблизости в памяти в этой функции, или нулевые байты).
string res = "";
if (something) {
res = "ok";
}
if (res.length() > 0) {
send_data((void*) res.c_str(), res.length());
}
Мне кажется, что "" и "ok" являются константами std: strings, а res - указатель на любой из них, и поэтому все должно работать, но, очевидно, это не так Кто-нибудь, пожалуйста, объясните мне, что здесь происходит?