C/C++
wl1070325332
酷酷滴程序猿
展开
-
在C++中实现变长数组
1.变长一维数组 这里说的变长数组是指在编译时不能确定数组长度,程序在运行时需要动态分配内存空间的数组。实现变长数组最简单的是变长一维数组,你可以这样做: //文件名: array01.cpp #include using namespace std; int main() { int len; cin>>len; //用指针p指向new动态分配的长度为len*sizeof(in原创 2017-03-08 17:18:19 · 2746 阅读 · 0 评论 -
C语言socket通信发送结构体的问题
Socket 通信中需要发送/接收结构体时,不能直接发送/接收结构体,需要先把结构体进行转化,如: typedef struct { int client_sockfd; char client_name[30]; char buff[100]; }message; 在发送时需要先定义一个数组: char snd_buf[1024] = {0};再定义一个结构体指针或变原创 2017-03-08 17:18:33 · 6599 阅读 · 4 评论 -
mutable和volatile
mutable和volatile 很少遇到这两个关键字,学嵌入式估计知道后者,深入研究C++的估计知道前者。 (1)mutable 在C++中,mutable是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为const,其mutable成员也可以被修改。原创 2017-03-08 17:18:45 · 217 阅读 · 0 评论 -
纯虚析构函数必须给出定义
Effective C++ 条歀07:为多态基类声明virtual析构函数(Declare destructors virtual in polymorphic base classes) 纯虚函数 纯虚函数是一种特殊的虚函数,在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。 虚函数是C++语言的精髓。含有纯虚函原创 2017-03-08 17:18:48 · 3257 阅读 · 0 评论 -
Valgrind使用说明
Valgrind使用说明转载 2017-03-15 11:45:58 · 269 阅读 · 0 评论 -
STL vector等容器erase操作
if(!m_partsInfoVec.empty()) { for(vector::iterator iv = m_partsInfoVec.begin();iv != m_partsInfoVec.end();iv++) { if((*iv)->isChecked()) { i原创 2017-04-13 17:37:32 · 330 阅读 · 0 评论 -
重启socket服务器时:Bind error: Address already in use
很多socket编程的初学者可能会遇到这样的问题:如果先ctrl+c结束服务器端程序的话,再次启动服务器就会出现Address already in use这个错误,或者你的程序在正常关闭服务器端socket后还是有这个问题。正如下面的这段简单的socket程序。 server.c [c-sharp] view plain copy原创 2017-05-15 16:23:11 · 1146 阅读 · 0 评论