Visual studio 2008 带句柄的错误C2057 我尝试用MS Visual C++ 2008编译,但获得错误: .\flushmem.cpp(69):错误C2057:应为常量表达式 第行: 处理进程[processCount]; 以及警告: .\flushmem.cpp(63):警告C4244:“正在初始化”:从“unsigned”转换为“unsigned int”,可能会丢失数据 第行: 无符号进程计数=(totalPageFile+approximateProcessConsumption-1)/approximateProcessConsumption

Visual studio 2008 带句柄的错误C2057 我尝试用MS Visual C++ 2008编译,但获得错误: .\flushmem.cpp(69):错误C2057:应为常量表达式 第行: 处理进程[processCount]; 以及警告: .\flushmem.cpp(63):警告C4244:“正在初始化”:从“unsigned”转换为“unsigned int”,可能会丢失数据 第行: 无符号进程计数=(totalPageFile+approximateProcessConsumption-1)/approximateProcessConsumption,visual-studio-2008,Visual Studio 2008,如何解决?Visual Studio 2008编译器不支持自动数组大小的变量。行中: HANDLE processes[processCount]; processCount是一个变量,编译器只接受一个常量。您需要一个C99兼容的编译器,或者需要更改上面的代码行来分配数组。例如: HANDLE* processes = new HANDLE[processCount]; 如果分配阵列,则在使用完阵列后还需要将其删除: delete [] processes; 没有外部代码。请在您的问题中

如何解决?

Visual Studio 2008编译器不支持自动数组大小的变量。行中:

 HANDLE processes[processCount];
processCount是一个变量,编译器只接受一个常量。您需要一个C99兼容的编译器,或者需要更改上面的代码行来分配数组。例如:

HANDLE* processes = new HANDLE[processCount];
如果分配阵列,则在使用完阵列后还需要将其删除:

delete [] processes;

没有外部代码。请在您的问题中包含一个最小的可复制测试用例。。。