gpt4 book ai didi

c++ - 根据用户输入定义缓存大小

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:22 24 4
gpt4 key购买 nike

我使用以下代码根据用户输入设置缓存大小

int size=1024;
Console::WriteLine("Select the Cache Size.\n a. 1 Kb \n b. 2 Kb \n c. 4 Kb \n d. 8 Kb\n");
String^ CACHE_SIZEoption = Console::ReadLine();
//Char wh=CACHE_SIZEoption->ToChar();


switch(CACHE_SIZEoption[0])
{case 'a':{
size= 1024;
break;}

case 'b':{
size=2048;
break;}

case 'c':{size= 4096;
break;}

case 'd':{size=8192;
break;}
default: {Console::WriteLine("Wrong Input");}

}

#define CACHE_SIZE size
long tags[CACHE_SIZE];

错误出现在最后一行,“long tags[CACHE_SIZE]”

expected constant expression
cannot allocate an array of constant size 0

请告诉是否有其他方法可以做这件事

最佳答案

数组必须具有编译时固定大小。如您所见,size 变量在运行时会根据 CACHE_SIZEoption[0] 的值而变化。相反,您应该使用运行时大小的容器,例如 std::vector

std::vector<long> tags(size);

请注意,您的 #define 可能没有按照您的预期进行。宏在预处理阶段被扩展。如果您在代码中的其他任何地方使用 CACHE_SIZE,在编译代码之前它将被替换为 size。如果那些地方没有 size 变量,你会得到一个错误。它不会在您的代码中将 CACHE_SIZE 设置为 size 的值。

关于c++ - 根据用户输入定义缓存大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16358204/

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