在 C 中:输入用户并根据该输入创建多个变量

In C: take a user in put and create a number of variables based on that input

我需要在 C 中模拟一个 n 路缓存。我有固定数量的块,并且基于用户想要的任何级别的关联性,我想根据该输入将缓存分成多个集合.因此,例如,如果我总共有 16 个块并且他们想要 2 向关联性,我想创建 8 个不同的数组,每个数组有 2 个元素。这在 C 中是否可行,还是我需要找到另一种方法来实现它?

您正在尝试操作固定内存,因此最好的办法是使用指针。

如果可接受的用户输入是有限的,例如。 2、4、8 和 16,您可以使用 2、4、8 和 16 块键入定义 4 个结构。

typedef struct{
    int block;// replace type with appropriate block size
}Block;

typedef struct {
    Block b[2];
}TwoWay;

typedef struct {
    Block b[4];
}FourWay;

FourWay* p=&memory;
// Set0 - p
// Set1 - p+1
// Set2 - p+2 ...

您可以根据用户输入操作指针数或增量数。

或者,只需使用指针手动跳转到您需要的内存位置。编写一个地址解析函数,根据用户输入指向不同的位置。