作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这里要做的是将一个 stringbuf
对象转换为一个 char 数组。
我这样做是为了将 char 数组发送到不理解类型 std::stringbuf
的 C
接口(interface)。
这是我的代码的一部分来说明问题:
std::stringbuf buffer;
char * data;
//here i fill my buffer with an object
buffer >> Myobject;
//here is the function I want to create but I don't know if it's possible
data = convertToCharArray(buffer);
//here I send my buffer of char to my C interface
sendToCInterface(data);
最佳答案
如果您没有严格的零拷贝/高性能要求,那么:
std::string tmp = buffer.str();
// call C-interface, it is expected to not save the pointer
sendToCharInterface(tmp.data(), tmp.size());
// call C-interface giving it unique dynamically allocated copy, note strdup(...)
sendToCharInterface(strndup(tmp.data(), tmp.size()), tmp.size());
如果你确实需要它很快(但仍然有 stringbuf 在路上)那么你可以看看 stringbuf::pubsetbuf() 的方向.
关于c++ - 如何将 std::stringbuf 转换为 char 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23867728/
我是一名优秀的程序员,十分优秀!