gpt4 book ai didi

c++ - 动态分配大于SIZE_T/UINT的内存空间(即在堆上)

转载 作者:行者123 更新时间:2023-12-02 10:13:30 26 4
gpt4 key购买 nike

我要求分配一块只能在LONGLONG (long long)容器中存储的大小连续的内存空间。当将C4244值与LONGLONG语句或new函数一起使用时,编译器会引发 malloc() 类型的警告,指出从LONGLONG转换为size_t(对于malloc())或unsigned int(在对于new)。
我正在使用Visual C++编译器。
提前致谢。

LONGLONG allocSize;
PBYTE memPool;

memPool = new BYTE[allocSize]; // C4244
memPool = (PBYTE) malloc(allocSize); // C4244

最佳答案

仅在将代码设置为编译为x86指令集(其中不能使用超过4 GB的内存)的情况下,上述警告才持续存在。在任何情况下,都不可能分配超出SIZE_T范围的连续内存,这会使x64体系结构的size数据类型的范围比x86(32位)体系结构的范围大。

关于c++ - 动态分配大于SIZE_T/UINT的内存空间(即在堆上),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62694804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com