1。一个malloc请求分配的内存大小为什么最好能圆整为2的平方?
2。能说下内存对齐吗?对这个概念理解的不好。
3。怎样得到页面的大小?
4。怎样得到交换区的大小?
5。
[code]
#include
by xiaozhu2007 - C/C++ - 2008-01-11 03:17:52 阅读(3291) 回复(1)
1、c专家编程说会按2^n对齐,那么我申请71或者15之类的奇数字节还不行了?不会吧?这样岂不是不精确了? 2、还有一句话,说,访问N字节(数据类型)数据时,其地址必须是N字节对齐的?见下图
请教大虾,在Intelx86的系统中,malloc函数返回的地址是逻辑地址(段管理机制)还是线性地址(CPU的32位中间地址形式)? 菜鸟我想把malloc返回的地址转换成物理地址。 多谢! bow!
请教大虾,在Intelx86的系统中,malloc函数返回的地址是逻辑地址(段管理机制)还是线性地址(CPU的32位中间地址形式)? 菜鸟我想把malloc返回的地址转换成物理地址。 多谢! bow!
程序在线程内频繁分配和释放内存,字节数没有按机器字对齐,请问是否会出现段错误的情况,系统是X86 64位,红帽子 现在自己的程序出现了段错误,一时找不到原因,求教各位了:em16: :em16:
LINUX和FREEBSD在BSS结束地址(也可以说是malloc分配的起始地址)处理方面的不同: LINUX: malloc分配的起始地址是通过sys_brk(0)从内核获取,见代码 [separator] asmlinkage unsigned long sys_brk (unsigned long brk) 207 { 208 unsigned long rlim, retval; 209 unsigned long newbrk, oldbrk; 210 struct mm_struct *mm = current ->mm; 211 212 down_write (&mm->mmap_sem...
/* 分配lCount个pTicket */ if (pTicket = (CDatRawTicket *)malloc(sizeof(CDatRawTicket)*lCount) == NULL) { gf_PrintMess(0,0,"", "Not enough memory to allocate buffern"); goto Error_Return; } /*取表数据到内存*/ gf_PrintMess(0,0,"", "size=%ld",sizeof(CDatRawTicket)*lCount); gf_PrintMess(0,0,"", "pTicket=%ld",pTicket); memset(pTicket,0x0,sizeof(CDatRawTicket)*lCoun...
想大家请教一个问题: char *ptr; ptr=(char*)malloc(0); 程序运行之后,ptr的值不为空,不知道为什么,请熟悉这个的告诉指导一下,这是怎么实现的。 我在linux下man malloc,里面有一个解释是当malloc的分配长度为0时,ptr有可能为0,也有可能 为一个地址,这是为什么? 谢谢