![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
文章平均质量分 56
daweibayu123
这个作者很懒,什么都没留下…
展开
-
关于内存对齐问题(二)
转载,http://patmusing.blog.163.com/blog/static/135834960201001432110804/ 一个类的对象到底有多大?其大小由什么因素影响? 我们假定这个类没有继承任何其他类,且没有虚函数。先看下面例子:转载 2011-07-29 17:09:16 · 283 阅读 · 0 评论 -
常量区的修改
#include #include int main() { const char* a = "123456"; const char* b = "123456"; char* c = "654321"; DWORD oldprot; HANDLE hProcess = GetCurrentProcess(); VirtualProtectEx(hProcess, (LPVO原创 2013-03-29 16:31:23 · 624 阅读 · 0 评论 -
静态局部变量
如下代码 void static_func() { static int a = 0; printf("%d \n", ++a); } int main() { for(int i = 0; i static_func(); return 0; } 输出应该是1,2,3,4,5,6,7,8,9,10 a的地址也都不变 至于为什么?稍后补充原创 2013-01-02 16:49:37 · 215 阅读 · 0 评论 -
json 相关的问题
json-c 有自己的引用计数的内存管理机制, json_object_get() 函数用于手动地增加对象的引用计数, 相对地, json_object_put() 用于手动地减少引用计数. 要使用 json-c 必须非常明白每一个函数, 是否会增加或者减少对象的引用计数, 以避免内存泄露. 暂记,稍后补充原创 2012-09-27 11:27:27 · 322 阅读 · 0 评论 -
error while loading shared libraries cannot open shared object file
gdb 调试时出现error while loading shared libraries cannot open shared object file的问题。 系统找不到该libraries 。 解决办法: 1、将libraries 所在的目录加到/etc/ld.so.conf中 2、执行/sbin/ldconfig –v OK原创 2012-02-15 11:46:13 · 624 阅读 · 0 评论 -
字符编码
ASCII码:ASCII码使用7位2进制数表示一个字符,这样,7位2进制数可以表示出2的7次方个字符,共128个字符。 EBCDIC码:EBCDIC码使用8位,可以表示出2的8次方个字符,256个字符。 GB 2312:GB2312编码用两个字节(8位2进制)原创 2011-10-12 10:41:01 · 409 阅读 · 0 评论 -
一个进程在内存中的布局
对于一个完整的程序,在内存中分布情况如下图: 值得一提的是:在C#中struct存放在栈区,class存放在堆区,所以一般struct要比class要快的。 堆和栈的比较表(仅针对C++)转载 2011-07-29 17:29:24 · 341 阅读 · 0 评论 -
关于内存对其问题(三)
转载 atmusing.blog.163.com/blog/static/135834960201001432528600/ 第一种情况: struct BBB { long num;转载 2011-07-29 17:27:54 · 270 阅读 · 0 评论 -
关于内存对其问题(一)
非原创,转自http://patmusing.blog.163.com/blog/static/135834960201001432528600/ a. 基本类型:所有的基本类型都有相应的对齐参数,编译器在编译时,会用全局的对齐参数和当前类型的对齐参数中较小的一个进行对转载 2011-07-29 17:05:08 · 270 阅读 · 0 评论 -
sizeof 与 strlen
sizeof() 编译期 strlen() 运行时 所以strlen(string)即为该字符串的真是长度(不包含‘\0’) 但sizeof(string) 则为4(编译器不同值不同,但都是固定值) 所以有: int size(int * t) { sizeof(t); } int a[100]= {0}; cout 输出 400 4 因为在编译期s原创 2013-10-10 15:27:04 · 615 阅读 · 0 评论