std::stringstream ss; 直接使用ss.str().c_str() 字符串指针可能导致崩溃
std::stringstream ss;const char* ch = ss str() c_str();call_func(ch);这种写法在系统内存不足时,ss会立马释放内存,字符串指针ch可能会非法访问导致崩溃。代码最好的是
std::stringstream ss; 直接使用ss.str().c_str() 字符串指针可能导致崩溃
std::stringstream ss;const char* ch = ss str() c_str();call_func(ch);这种写法在系统内存不足时,ss会立马释放内存,字符串指针ch可能会非法访问导致崩溃。代码最好的是
Windows Server2016服务器C++崩溃时容易不彻底,导致卡住死锁,Server2008死锁概率低一些,死锁感觉是由于malloc不可重入导致的。操作系统底层API行为可能不一致,可能有办法指定
Google C++编码规范(Google C++ Style Guide)
Google C++ Style Guide是一份不错的C++编码指南,我制作了一张比较全面的说明图,可以在短时间内快速掌握规范的重点内容。不过规范毕竟是人定的,记得活学活用。
C++中全局静态变量初始化顺序随机,是线程安全的;局部静态变量在函数调用时才初始化,非线程安全。1、C++中全局静态变量初始化顺序随机,是线程安全的,由C++标准提出,编译器实
std::mutex 加锁抛 _DEVICE_OR_RESOURCE_BUSY 异常
最近遇到一个崩溃,在 std::lock_guard<std::mutex> lock(mutex_); 的地方,抛出了_DEVICE_OR_RESOURCE_BUSY 的异常。最终查出原因是:同一个线程对同一个mutex二次加锁导致的
c++11 智能指针回调经典测试案例,当回调函数需要使用原对象指针时不确定原对象是否已经释放,这时必须使用智能指针了,代码如下: includ
在windows与linux系统通过socket的传输数据里,如果传输中文字符,因为windows和linux使用的编码不同,所以需要将windows下的中文编码转换为
C++ 智能指针shared_ptr,weak_ptr,shared_from_this实践
new XXX(shared_from_this()) 如果用强指针去接,则增加引用计数;弱引用去接,不增加引用计数。auto去接等同强指针。weak_ptr 传给thread、timer回调,不能使用expired()判断
函数 safeGetline:std::istream& safeGetline(std::istream& is, std::string& t){ t clear(); 使用std::streambuf
参考https: stackoverflow com questions 37085665 in-which-conda-environment-is-jupyter-executing需要安装:conda install ipykerne
Duilib 是一款强大的界面开发工具,可以将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。Duilib 是国内首个开源 的direct
去掉std::string或std::wstring最后一个字符的几种简单方法
去掉std::string或std::wstring的最后一个字符:1、s pop_back(); 2、s erase(s end() - 1); 3、s = s substr(0, s length() - 1);
下面是摘自 MSDN 的文章,在Win64下的 registers 用途RegisterStatusUseRAXVolatileReturn value registerRCXVolatileFirst integer