我想声明名称为 efficiency_module_cmp_%d_x 的32个1d数组,%d从1到16, efficiency_module_cmp_%d_y ,%d从1到16。 我使用以下代码执行此操作但这不起作用。这有什么问题:
char array_name[100];
char array_name1[100];
for ( int i=0; i<16;i++)
{
sprintf(array_name,"efficiency_module_cmp_%d_x",i+1);
float array_name[n] ;
sprintf(array_name1,"efficiency_module_cmp_%d_y",i+1);
float array_name1[n] ;
}
建议可能的解决方案。
答案 0 :(得分:1)
您无法在运行时创建对象的名称(C ++是静态类型的)。相反,您可以创建一个数组的向量(或任何其他容器),并将数组推送到容器的后面,如下所示:
#include <vector>
int main()
{
std::vector<char*> vectorOfArrays;
for (int i = 0; i < 16; i++) {
vectorOfArrays.push_back(new char[10]);
}
return 0;
}
然后您就可以访问其中一个数组:vectorOfArrays[3];