首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

16位字节对齐大内存申请教题

2012-09-18 
16位字节对齐大内存申请问题32位系统用_aligned_malloc申请800M左右内存就失败,如何安全地申请到2G内存?C/

16位字节对齐大内存申请问题
32位系统用_aligned_malloc申请800M左右内存就失败,如何安全地申请到2G内存?

C/C++ code
void *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;        }    }}
[解决办法]
探讨

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(10……

[解决办法]
2G用户空间模式的话,之前测了下,最多只能申请到1.4G左右连续内存。
[解决办法]
linux下一般可以申请到2.9G左右 win下差不多1.5G
[解决办法]
用文件读写模拟内存读写,空间大小只受硬盘剩余空间限制。
参考_lseeki64函数。

热点排行
Bad Request.