16位字节对齐大内存申请教题
16位字节对齐大内存申请问题32位系统用_aligned_malloc申请800M左右内存就失败,如何安全地申请到2G内存?C/
16位字节对齐大内存申请问题
32位系统用_aligned_malloc申请800M左右内存就失败,如何安全地申请到2G内存?
C/C++ codevoid *c=_aligned_malloc(1024*1024*800,16);
[解决办法]32位xp下每个进程有4G内存空间,通常高2G为系统空间,用户空间为低2G,普通程序一般申请大约2G内存是没问题的,但一次最好别申请太大。
C/C++ code#include<stdio.h>#include<stdlib.h>int main() { void *p; static int a=0; while (1) { p=malloc(1024*1024); if (p) a++; else { printf("%d\n",a); getchar(); break; } }}
[解决办法]
[解决办法]
2G用户空间模式的话,之前测了下,最多只能申请到1.4G左右连续内存。
[解决办法]
linux下一般可以申请到2.9G左右 win下差不多1.5G
[解决办法]
用文件读写模拟内存读写,空间大小只受硬盘剩余空间限制。
参考_lseeki64函数。