0

我尝试用 ms visual c++ 2008 编译flushmem.cpp,但得到错误:.\flushmem.cpp(69) : error C2057: expected constant expression at line: HANDLE processes[processCount]; 和警告: .\flushmem.cpp(63) : 警告 C4244: 'initializing' : 从 'unsigned __int64' 转换为 'unsigned int',可能会丢失行中的数据: unsigned processCount = (totalPageFile +approximateProcessConsumption - 1) /近似过程消耗;

怎么解决?

4

1 回答 1

1

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

 HANDLE processes[processCount];

processCount是一个变量,编译器只接受一个常量。您将需要一个符合 C99 的编译器,或者您需要更改上面的代码行来分配数组。例如:

HANDLE* processes = new HANDLE[processCount];

如果您分配数组,您还需要在完成后将其删除:

delete [] processes;
于 2013-01-06T23:37:20.730 回答