![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++
jimmy1357
这个作者很懒,什么都没留下…
展开
-
c/c++中指针学习的两个绝好例子
对于众多人提出的c/c++中指针难学的问题做个总结:指针学习不好关键是概念不清造成的,说的简单点就是书没有认真看,指针的学习犹如人在学习饶口令不多看多学多练是不行的,下面是两个很经典的例子,很多书上都有,对于学习的重点在于理解*x和x的理解,他们并不相同,*x所表示的其实就是变量a本身,x表示的是变量a在内存中的地址,如果想明白可以输出观察cout义了int *x;后对x=&a的理转载 2013-10-07 12:13:51 · 575 阅读 · 0 评论 -
unp代码在ubuntu10.04中需要作的更改
1.在tcpclisrv/下make 出错tcpservpoll01.c:13: error: ‘OPEN_MAX’ undeclared (first use in this function)转载 2014-08-08 10:43:28 · 1609 阅读 · 1 评论 -
gcc下使用char * char 数组 时经常会出现的*** stack smashing detected ***: 程序 terminated
定义数组空间的时候稍微把空间定义大一点,可能就不再出现这个原创 2014-09-15 14:48:47 · 773 阅读 · 0 评论 -
fgets函数的理解
fget函数的原型如下:char *fgets(char *buf, int n, FILE *fp)功能:从文件流读取一行,送到缓冲区,使用时注意以下几点:1.当遇到换行符或者缓冲区已满,fgets就会停止,返回读到的数据,值得注意的是不能用fgets读二进制文件,因为fgets会把二进制文件当成文本文件来处理,这势必会产生乱码。2.每次调用,fgets都会把缓冲区的转载 2014-10-23 18:51:27 · 903 阅读 · 0 评论 -
关于typedef的用法总结
http://www.cnblogs.com/csyisong/archive/2009/01/09/1372363.html转载 2014-10-18 15:21:51 · 447 阅读 · 0 评论 -
VS2010中MIRACL lib 的生成
To build the MIRACL library with Visual C++ V8.0Select New Project, Console ApplicationName: miraclLocation: d:\myprojects (for example)Solution name: miraclClick OKClick A转载 2014-12-10 18:54:48 · 3363 阅读 · 0 评论 -
error LNK2005 已经在 obj 中定义 错误
>> : error LNK2005: ×××× (★★★★) 已经在 ※※※.obj 中定义 通常是由于在.h文件里定义了此变量,移动到.cpp文件里即可。并在使用到这个变量的cpp文件中加上extern int ID; 出错原因:无意中遇到了这样的编译问题, 于是google,发现在.h文件里定义变量,发生这问题的概率是灰常大的.转载 2015-03-11 12:53:33 · 10565 阅读 · 0 评论 -
用printf输出string类型数据总结
#include #include using namespace std;int main(){ string a; a[0]='a'; a[1]='/0'; printf("%s/n",a); system("pause");}出错: [Warning] cannot pass objects of non-POD typ转载 2015-03-11 13:06:04 · 869 阅读 · 0 评论 -
打造vim为IDE的全过程
在这里先感谢 www.vimer.cn 的作者的工作。原创 2014-04-25 11:42:54 · 748 阅读 · 0 评论 -
std::function 和 std::bind
std::function 和 std::bind标准库函数bind()和function()定义于头文件中(该头文件还包括许多其他函数对象),用于处理函数及函数参数。bind()接受一个函数(或者函数对象,或者任何你可以通过”(…)”符号调用的事物),生成一个其有某一个或多个函数参数被“绑定”或重新组织的函数对象。(译注:顾名思义,bind()函数的意义就像它的函数名一样,是用来绑定函数转载 2015-06-10 11:09:03 · 436 阅读 · 0 评论 -
使用enable_shared_from_this
使用enable_shared_from_thishttp://blog.csdn.net/zhongguoren666/article/details/8618316说明The header defines the class template enable_shared_from_this. It is used as a base class that allows a sha转载 2015-06-10 10:10:33 · 451 阅读 · 0 评论 -
c++filt看函数名
gdb查看寄存器 i r 查看有意义的信息 函数后面的+num(行数)然后在gdb中用反汇编指令disassemble在指定行下看编译信息 _ZN6apsara5pangu15ScopedChunkInfoINS0_12RafChunkInfoEED1Evc++函数在linux系统下编译之后会变成类似下面的样子:_ZN6apsara5pangu15ScopedChunkIn原创 2015-07-09 18:35:50 · 8504 阅读 · 4 评论 -
关于c语言内存分配,malloc,free,和段错误,内存泄露
1. C语言的函数malloc和free (1) 函数malloc和free在头文件中的原型及参数 void * malloc(size_t size)动态配置内存,大小有size决定,返回值成功时为任意类型指针,失败时为NULL。 void free(void *ptr)释放动态申请的内存空间,调用free()后ptr所指向的原创 2014-07-20 21:40:10 · 5074 阅读 · 0 评论 -
memwatch使用说明书
转自http://blog.chinaunix.net/uid-25885064-id-3082686.html转载 2014-07-20 21:22:12 · 2132 阅读 · 0 评论 -
int *a 和 int* a 的区别
看书的时候遇见过int *a;和int* a;这两种定义方式,不明白后一种是啥意思,还有两者之间的区别,网上搜了下,收集了这方面的意见:没区别,但是当定义多个指针变量时,int *a,*b;比int* a,*b;要好看一些语句int* a;和int *a;都是定义一个指向int类型变量的指针 有人提议用int* a;这样在分析类型的时候就直接去掉变量转载 2013-10-07 12:07:37 · 10105 阅读 · 3 评论 -
More Effective C++:指针与引用的区别
指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢? 首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因转载 2013-10-07 15:40:54 · 533 阅读 · 0 评论 -
C++中关于指针入门的最好的文章
什么是指针? 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据。这是一个非常重要的概念,有很多程序和算法都是围绕指针而设计的,如链表。 开始学习 如何定义一个指针呢?就像你定义一个其它变量一样,只不过你要在指针名字前加上一个星号。我们来看一个例子:下面这个程序定义了两个指针,它们都是指转载 2013-10-07 16:48:40 · 537 阅读 · 0 评论 -
把VIM打造成一个真正的IDE
今天在配置VIM的时候发现了一个不错的博文:把VIM打造成一个真正的IDE里面关于omnicppcomplete的安装和介绍不太详细,装好后总有一个错误omni completion not found,找来找去终于发现一个网站,里面关于omnicppcomplete的安装介绍相当详细,按照上面介绍的方法终于解决了问题。原创 2013-10-08 12:28:34 · 729 阅读 · 0 评论 -
C++中数组作为参数传递时,是否能在传递过后求该数组的大小呢?
今天在写程序 时,发现如下代码运行有问题:void multPacket(int dest[],int pid){ int member=sizeof(dest)/sizeof(int);//表示成員個數 cout<<sizeof(dest)<<endl; cout<<sizeof(int)<<endl; for(int i=0;i<member;i++) { cout<<"已原创 2013-11-23 16:41:16 · 1893 阅读 · 0 评论 -
linux与windows下C++的sleep函数
随便写了个c代码,想在Linux下编译运行:[dennischen@lxw12 dennischen]$ cd work[dennischen@lxw12 work]$ cat sleep.c#include main(){ int flag =100; for(;flag>0;flag--) {转载 2013-11-23 16:58:32 · 1377 阅读 · 0 评论 -
用eclipse打开已有makefile的c项目
一定要点file->new->makefile project with existing code不能用openfile原创 2013-12-08 14:08:44 · 2857 阅读 · 0 评论 -
近期错误小结
1. 关于段错误: 虽然调试器不能用,eclipse也无法定位代码行,但是在大神的帮助下,还是利用了printf 语句不断定位,最终找到了产生错误的地方,成功解决了段错误。 段错误一般都是与内存越界访问之类的有关,这次的错误是赋值的时候,将两个字符拼接得到的字符串需要的内存空间大于目标变量的空间,因此出现了段错误。 解决办法:重新写了C的字符串拼接函原创 2013-12-10 23:39:41 · 457 阅读 · 0 评论 -
Linux 环境下段错误的产生原因及调试方法小结
最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多、花费时间最长的问题就是著名的“段错误”(Segmentation Fault)。借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决。1. 段错误是什么一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,转载 2013-12-05 13:23:50 · 1749 阅读 · 0 评论 -
在ubuntu10.04上 安装 QT5.1.1 后打不开qt creator (opensource)的解决方法
首先,晒一下 安装方法:Method 2 of 2: Qt SDK 5.0 Installation Instructions: 1. First determine your Ubuntu Linux operating system bit version by opening up a terminal and typing the fo原创 2013-12-23 17:41:03 · 3166 阅读 · 0 评论 -
Sizeof与Strlen的区别与联系
一、sizeof sizeof(...)是运算符,在头文件中typedef为unsigned int,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。 它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。 由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的转载 2014-07-19 11:39:20 · 407 阅读 · 0 评论 -
局部栈变量不要传引用给可能切换线程的函数
一般情况下,尽量不要把栈上的局部变量传地址给其他函数,特别是当其他函数需要切换线程的时候,如果其他线程对该变量调用析构函数,那么可能会core掉。因为设定局部变量的函数可能已经执行结束(异步切换线程时),如果该函数结束,那么局部变量会被析构,在其他线程中再访问这个局部变量势必会出错。如果非要用局部变量,那么必须保证定义局部变量的函数没有执行结束(即同步,线程一直在waiting)。原创 2015-07-16 18:13:45 · 667 阅读 · 0 评论