![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
日积月累
文章平均质量分 85
月光xia漫步
这个作者很懒,什么都没留下…
展开
-
内存对齐
对齐系数:每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。程序员可以通过预编译命令#pragma pack(n),n=1,2,4,8,16来改变这一系数。而对齐系数的确认是通过一个结构体中的最宽的基本数据类型来确认的。通过一个例子说明结构体所占内存的大小。struct st{ int i; short s; char原创 2012-07-30 19:56:10 · 554 阅读 · 0 评论 -
scnaf使用格式化字符串%d接受小数的情况
在使用scanf的时候,因为需要传递整数,所以,很显然格式化字符串使用“%d”,但是在测试的时候,有人就使用了小数,也就是误输入,那情况就糟糕了,举一个简单的例子:#include int main(){ int a,b,c; //printf("a=%d,b=%d,c=%d\n",a,b,c); while(1) { //fflush(stdin);原创 2012-10-26 12:20:54 · 3981 阅读 · 0 评论 -
for的死循环(逗号表达式)
实例一: for(i=0 ,printf("First=%d \n",i ); i<10 ,printf("Second=%d \n",i ); i++ ,printf("Third=%d\n",i )) { printf("Fourth=%d \n",i); }在学习逗号表达式的时候,我看到了上面的一个例子,拿到编译环境进行调试的时候,发现竟然是一个死原创 2012-11-22 19:34:03 · 2731 阅读 · 1 评论 -
gdb积累学习
逐步积累的gdb调试方法,慢慢学习,让gdb调试变的更加得心应手。原创 2013-11-01 16:11:36 · 5334 阅读 · 0 评论 -
shell脚本 给linux上的用户群发信息
自己随便写的一个可以给连接当前主机上的所有终端发送信息的shell脚本,希望对大家有帮助!原创 2014-02-26 11:53:58 · 2565 阅读 · 0 评论 -
一次调用动态库时出现问题的解决历程
虽然都是一些小问题,但是,倘若没有注意到的话,的确挺费力的。这次注意一下,下一次就可以避免了。分享一下这次历程,希望对大家有帮助。如果有什么不对的话,还希望给与批评和指正,谢谢!原创 2014-02-14 19:23:16 · 1740 阅读 · 0 评论 -
shell脚本之对比不同目录的下的文件
自己写的一个比较不同目录下的文件,用来批量比较文件差异性。自己写的简单小例子,希望对大家有帮助!~原创 2014-02-28 16:51:48 · 5964 阅读 · 0 评论 -
自己在linux上编译、链接、动态库和静态库的学习笔记
自己在空闲的时间整理了在平常生活中编译、链接、静态库和动态库使用过程中经常遇到的问题,希望对大家有所帮助,如果发现不对的地方,还希望不吝赐教,谢谢!原创 2014-02-20 15:50:28 · 4171 阅读 · 0 评论 -
tar备份时不显示目录结构
网上看到了方法,但是因为没有仔细去看,走了一些冤枉路,希望与大家共勉吧!原创 2014-03-06 17:07:53 · 3576 阅读 · 0 评论 -
ls显示文件大小时显示单位
使用linux两年了,虽然每次使用ls显示的时候感觉不自在,但是一直懒得去想办法。今天才去搜索一下这个小功能,感觉挺挺实用(只针对不知道的人来说啊,知道的人,路过一笑,就行了)。日积月累,让我们的工作更顺畅!原创 2014-03-13 18:55:10 · 42403 阅读 · 0 评论 -
gdb调试断点的保存
对于希望保存自己苦心设置一天的断点,这只是一个很小很小的方法,但是,没有见到它之前,我就是一个一个复制断点位置的。希望对大家有帮助!原创 2014-06-09 17:53:24 · 8041 阅读 · 4 评论 -
查看连接到本机ftp服务器的指定ip
接手原来的程序,知道其他服务器会往本机ftp文件,如何快速的查找这台服务器呢?我想到了一个方法,如果你有更好的方法,欢迎补充~~原创 2015-03-13 14:13:15 · 9339 阅读 · 0 评论 -
itoa的源码实现
因为通过socket传递数据的时候,只可以通过字符串类型,但是,当我们要传递的数据是整型的是,应该怎么办呢?本来我想着使用for循环,但是,总感觉太麻烦了,后来别人告诉我可以使用itoa,下面是itoa的原型:char *itoa(int value, char *string, int radix);举例如下:#include #include using namespace原创 2012-10-30 20:21:25 · 9446 阅读 · 4 评论 -
函数的缺省形参和构造函数的缺省形参
我们先看一个定义的带有缺省形参的函数: int add(int a=4,int b=5){ return a+b;}我们在使用的时候,可以使用下面的方式:cout<<add(1,2);cout<<add(1);cout<<add();但是,如果我们使用下面的方式就不可以了:cout如果我们输出函数add的地址如下所示:cout就可以看到,原创 2012-07-30 20:55:55 · 2468 阅读 · 0 评论 -
指针作参数,指针变量的引用问题
总感觉只要把指针作为参数,就可以达到我们需要的效果。举一个例子,我通过“bool Delete(BSTree p)”这个函数来删除结点*p(注:BSTree是BSTNode*指针变量),但是每次都是提示内存溢出的问题,弄的好郁闷,后来仔细想了想,好像想出来了一些东西。先说一下上面说的这个函数,如果我们传递过来一个指向一个结构体(二叉树)的指针,它占有一片内存(设为A),但在函数中,这个指针原创 2012-07-30 20:52:52 · 689 阅读 · 0 评论 -
指针变量的引用
指针变量的引用在声明的时候,主要要在“*”之后添加“&”,例如:int *& a =b;下面引用一个例子:void main(){ int arr[]={1,2,3}; int *p=arr; int *&r=p; cout<<"r="<<r<<",p="<<p<<endl; cout<原创 2012-07-30 20:18:41 · 1520 阅读 · 0 评论 -
内存溢出
举一个小例子,大家就会明白什么是内存溢出了 #include #include using namespace std;void main(){ char *ch=new char[4]; ch="月光xia漫步"; cout<<sizeof(ch)<<endl; cout<<strlen原创 2012-07-30 20:31:15 · 573 阅读 · 0 评论 -
完全释放申请的内存空间
思想:每次都是删除第二个结点,当head结点没有后继结点,即没有第二个结点的时候,我们再去释放head结点(head结点保存着数据)注:当然如果有头结点的话,我们释放的方法还是这样,因为我们的使用头结点的时候,是浪费了一个空间作为头结点,这样可以更好的对链表进行操作。因为头结点占有内存空间(虽然它只有指针域存在东西,当然,你可以为它的数据域保存东西,例如链表结点的数目等),所以还是需要释放。原创 2012-07-30 20:37:40 · 1413 阅读 · 0 评论 -
getchar()的记忆清除
有时候我们在使用getchar()的时候,会发现,getchar中内容并不是每次都是我们需要使用的东西,有时候获取的东西让我们赶觉到莫名其妙的。现在先举以简单的例子,让大家看的清楚。 char c=getchar();// getchar(); cout<<"您输入的是:"<<c<<endl; char d=getchar(); cout<<"您输入的是:"<<int(d)<<原创 2012-07-30 20:41:44 · 1347 阅读 · 0 评论 -
数字添加到字符数组的函数
在调试的过程,因为需要不断的更改文件,以读取数据,但是当文件更改的时候,函数中声明的一个预编译命令“#define NUM 10”必须要变,因为NUM保存着要排序的元素的数目(早知道,在结构体中增加一个保存排序数目的变量,就没这个麻烦了),还有一个保存数据的文件的名称还需要修改。所以每调试一个文件,需要改动两个地方。如果这样的话,一定会在某个时候只改动一个地方而引起错误,于是,我就想在程序中打原创 2012-07-30 20:46:52 · 1353 阅读 · 0 评论 -
通过查看内存学习引用
本来学习引用的时候,只知道可以通过函数达到修改实参的目的,但是倘若不用引用的话,则达不到,于是有一个查看内存的想法,这样或许可以对引用理解的更透彻。首先引用一个小例子: #include using namespace std;void swap(int x,int y){ int temp; temp=x; x=y; y=temp;}void ma原创 2012-07-30 21:01:19 · 630 阅读 · 2 评论 -
类继承和类组合(内嵌类)初始化的不同
为了说明方便,暂时设有下面三个类: public: A(int i);private: int a;};class B{public: B(int i);private: int b;};class C:public A{public: C(int i原创 2012-07-30 21:08:36 · 992 阅读 · 1 评论 -
cout输出字符串地址
我今天试了一下,发现在C++中,如果我们想cout一个字符数组的话,那么它就会沿着这个地址,一直输出输出这个字符串,直到遇到'\0'。例如下面这个例子:char *c="cadn\0hello";cout<<c<<endl;输出的结果是:cadn如果我们自作聪明的想输出第一个字符的地址,例如这样输出:cout<<&c[0]<<endl;不幸的是,这样原创 2012-07-30 21:18:37 · 3818 阅读 · 0 评论 -
输入的几种实现
字符串的输入cin输入多个字符串时,以空格分隔;输入单个字符串时其中不能有空格。例如: 程序中有下列语句: static char str1[5],str2[5],str3[5]; cin>>str1>>str2>>str3; 运行时输入数据: How are you?若改为: static char st原创 2012-07-30 21:28:58 · 1265 阅读 · 0 评论 -
结构体在使用之前必须申请空间,即为此分配内存
例如一个结构体SeqList,声明如下:#define ListSize 100 //表空间的大小typedef int DateType;//数据类型定义需要“;”typedef struct { DateType data[ListSize]; int lengtn;}SeqList; 在声明结构体变量的时候,可以为它分配内存空间,如下:SeqList *原创 2012-07-30 20:10:02 · 14780 阅读 · 4 评论 -
单链表显示的时候,链表头元素没有显示出来
首先,必须清楚链表在构造的时候,头结点是否使用,也就是说头结点是否就是第一个结点。如果头结点数据为空,使用以下的访问格式: LinkNode* p=head->next; //头结点是不可用结点,故应该使用p=head->next while(p!=NULL) { coutdata<<" "; p=p-原创 2012-07-30 20:21:00 · 1046 阅读 · 0 评论 -
指针使用前必须初始化
在指针的使用过程中,是最容易出现问题的。就像今天,我本来进行基数排序,但是,因为存储时用数组的,所以导致排序100000的时候,内存提示不足,因此,对于队列的使用,我就想到了使用链式存储。但是,当使用链式存储的时候,一直提示内存不足,把排序数目调到10的时候,也是如此,因此我想到了是程序改出了问题。下面是定义的结构:typedef int DataType;typedef stru原创 2012-07-30 20:49:23 · 2173 阅读 · 0 评论 -
逐步积累的常用shell整理
Linux shell 学习是一个循序渐进的过程。最开始我是通过《鸟哥的linux私房菜》学习Linux的同时学习了 shell, 入门之后就一直是遇到问题、搜索问题、总结问题的学习过程。后来感觉一些不错的命令,汇总起来方便后续的查找,于是慢慢的积累了几十条常用的命令,取之于网络,用之于网络,希望对大家有所帮助!一、删除换行符cat 文件名|tr -d '\n'cat 文件名|tr -d '\r'...原创 2018-03-19 12:56:45 · 399 阅读 · 0 评论