我尝试使用ms visual c ++ 2008编译flushmem.cpp,但获取错误: 。\ flushmem.cpp(69):错误C2057:预期的常量表达式 在线: HANDLE进程[processCount]; 和警告: 。\ flushmem.cpp(63):警告C4244:'初始化':从'unsigned __int64'转换为'unsigned int',可能会丢失数据 在线: unsigned processCount =(totalPageFile + approximateProcessConsumption - 1)/ approximateProcessConsumption;
如何解决?
答案 0 :(得分:1)
Visual Studio 2008编译器不支持将变量作为自动数组的大小。在该行:
HANDLE processes[processCount];
processCount 是一个变量,编译器只接受一个常量。您将需要符合C99的编译器,或者您需要更改上面的代码行来分配数组。例如:
HANDLE* processes = new HANDLE[processCount];
如果你分配了数组,你还需要在完成后删除它:
delete [] processes;