随笔分类 -  杂谈

关于malloc和free个人的一点理解
摘要:malloc和free是在动态分配内存空间和释放时用到的。使用malloc和free通常是在定义一些链表或者指针数组等动态结构会用到,而malloc时,操作系统也会做一些工作,主要是从空闲堆中分配一块空间,而且,这块空间还包括了该空间块大小等信息,以便释放时用到。这大概也是一个malloc对应一个free这句话的一层意思。之前想到,如果我分配的空间现在不需要使用这么大,就像原字符串被截断了这种情况该怎么办呢?目前想到的只有重新分配一个新的空间,然后把需要保留的copy到这里,释放原空间,或者是不管原空间大小,只需要正确设置结束符即可。不知道c++string的resize是怎么实现的?有时间去 阅读全文

posted @ 2013-01-07 13:56 小龙人2012 阅读(205) 评论(0) 推荐(0)

gdb 在不中断调试的情况下修改源代码并编译
摘要:使用gdb调试程序时,当发现问题想要修改源代码时,可以直接在用vim打开的源代码中编辑,并使用vim 的 :!g++ -g -o xxx.out xxx.cpp 命令重新生成(一定要记住需要重新编译,否则你在gdb中单步调试或者list看到的源代码已经改过来了,但是事实上并没有编译。)。然后在gdb中输入r即可重新运行,这里不需要从gdb中退出,之前设置的断点也可以继续使用。 阅读全文

posted @ 2012-12-22 22:21 小龙人2012 阅读(952) 评论(0) 推荐(0)

导航