在 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 ...
您可以根据用户输入操作指针数或增量数。
或者,只需使用指针手动跳转到您需要的内存位置。编写一个地址解析函数,根据用户输入指向不同的位置。
我需要在 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 ...
您可以根据用户输入操作指针数或增量数。
或者,只需使用指针手动跳转到您需要的内存位置。编写一个地址解析函数,根据用户输入指向不同的位置。