- 主题:VS2010申请内存出错
你这数组大小超过int范围越界了,要用int64_t
【 在 trabalhar 的大作中提到: 】
: 就是 char * data = new char[76800*2*49152]
--
FROM 221.218.209.*
vs2022的x64 compiler的话,下面前三种都有warning
vs2010这老古董不知道啥行为
char *t = new char[76800 * 2 * 49152];
unsigned int sz = 76800 * 2 * 49152;
char *a = new char[sz];
unsigned long long sz2 = 76800 * 2 * 49152;
char *a2 = new char[sz2];
unsigned long long sz3 = 76800 * 2 * 49152ull;
char *a3 = new char[sz3];
【 在 Bernstein 的大作中提到: 】
: 你这数组大小超过int范围越界了,要用int64_t
:
--
FROM 114.245.195.*
?这么低级错误呢
【 在 Bernstein 的大作中提到: 】
: 你这数组大小超过int范围越界了,要用int64_t
:
: 【 在 trabalhar 的大作中提到: 】
: ...................
--来自微水木3.5.11
--
FROM 106.121.141.*
?我直接给的数字
【 在 Bernstein 的大作中提到: 】
: 你这数组大小超过int范围越界了,要用int64_t
:
: 【 在 trabalhar 的大作中提到: 】
: ...................
--来自微水木3.5.11
--
FROM 106.121.141.*
装了一个2015还是同样报错!
【 在 z16166 的大作中提到: 】
: 有问题,肯定第一想到的是给出代码啊
:
: 搜了一下,你这个貌似是vs2010~vs2012的cross-compiler的bug,就是用x86 compiler编译x64程序时会遇到的问题。但交叉编译一般是在dos command prompt时会用。IDE里用交叉编译,还没试过/遇过。
: ...................
--来自微水木3.5.11
--
FROM 106.121.141.*
用VS 2019E (32bit,工具集V142)@ Win10(64bit) Target x64 和 VS 2022C(64bit, 工具集V143)@ Win10(64bit) Target x64 都试了一下,都是报下标超出错误,用VS带的Clang-CL都没问题。
【 在 z16166 的大作中提到: 】
: 如果是64-bit编译的,没任何问题。你是32-bit的?
: int main(int argc, char **argv) {
: char *a = new char[(unsigned long long)7 * 1024 * 1024 * 1024];
: ...................
--
FROM 222.129.53.*
最后这个是啥?到底咋解决问题啊
【 在 ble 的大作中提到: 】
: 用VS 2019E (32bit,工具集V142)@ Win10(64bit) Target x64 和 VS 2022C(64bit, 工具集V143)@ Win10(64bit) Target x64 都试了一下,都是报下标超出错误,用VS带的Clang-CL都没问题。
:
:
: ...................
--来自微水木3.5.11
--
FROM 106.121.141.*
VS自带的Clang啊,因为LLVM不提供Windows下的基础库,只有编译工具,所以需要和VC/MinGW配合用,所以VS就自己集成了clang-cl。
clang-cl.exe是使用CL.exe风格命令行参数的clang.exe(VC命令行)
【 在 trabalhar 的大作中提到: 】
: 最后这个是啥?到底咋解决问题啊
--
FROM 222.129.53.*
俺不会用…
【 在 ble 的大作中提到: 】
: VS自带的Clang啊,因为LLVM不提供Windows下的基础库,只有编译工具,所以需要和VC/MinGW配合用,所以VS就自己集成了clang-cl。
:
: clang-cl.exe是使用CL.exe风格命令行参数的clang.exe(VC命令行)
: ...................
--来自微水木3.5.11
--
FROM 106.121.141.*