【问题标题】:problem with virtualallocvirtualalloc的问题
【发布时间】:2011-08-19 00:43:43
【问题描述】:
virtualpointer=(char*) VirtualAlloc (NULL, (unsigned __int64) (1<<31), MEM_RESERVE, PAGE_READWRITE); 
mainhashbuf=progression=virtualpointer;
VirtualAlloc (progression, (unsigned __int64) (1<<15), MEM_COMMIT, PAGE_READWRITE);
progression=progression+capacity;
*(mainhashbuf+1000)='c';

mainhashbuf、progress 和 virtualpointer 都是指向 char 的指针。我首先保留空间,虚拟指针指向该空间。然后我将其他 2 个指针设置为等于虚拟指针。然后我使用进度(现在也指向保留空间)提交(1

【问题讨论】:

    标签: c++ pointers virtualalloc


    【解决方案1】:

    VirtualAlloc 尝试分配连续范围的虚拟页面。 1

    选择较低的值并重新开始。另外,为什么要使用 VirtualAlloc?当您不熟悉指针和直接内存管理时,以页面大小为单位提交和保留的概念可能有点令人生畏。先尝试使用 malloc/HeapAlloc 吗?此外,检查 VirtualAlloc 的返回值并确保它们不是 NULL。

    【讨论】:

    • 哈哈,你是对的,第一次调用 virtualalloc 使用的数字太大了。其他一切都是正确的。我确认 Virtualalloc 在其他人的计算机上为偶数 (1
    猜你喜欢
    • 2020-05-28
    • 2015-07-04
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 2011-12-04
    • 1970-01-01
    • 2020-09-22
    相关资源
    最近更新 更多