我想知道是否有办法从一个结构变量中初始化一个数组。如果你有这样的结构-
struct Test{
int Number;
};您希望初始化int 数字,使其成为一个数组。
我已经试过了,但没有用:
Test t1;
t1.Number = new int[3];
t1.Number[3] = 6;我知道C++禁止调整数组大小,但是如果有一种方法将整数初始化为数组,那就不是真正的调整大小了(不是吗?)而且,向量在结构中不起作用。我得到一个“向量不命名类型”错误。
P.S.,我也做不到:
struct Test{
int Number[5];
};因为当时我不知道我想要的数组的大小。
发布于 2012-03-31 03:20:50
向量在结构中工作得很好:
#include <vector>
struct Test {
std::vector<int> Numbers;
};我不知道你到底想做什么,但我认为这是近在咫尺。
发布于 2012-03-31 03:22:27
您可以使用指向int的指针--即,
struct Test{
int *Number;
};然后,您可以在将来的任何时候将它分配给您喜欢大小的数组:
t.Number = new int[5];但是正如其他人已经说过的那样,带有小"v“的std::vector工作得很好;一定要使用#include <vector>,以便编译器知道您在说什么。
发布于 2012-03-31 03:24:53
一招就是这么做
struct Test {
int Numbers[1];
};初始化结构时,需要使用自己的分配函数。
struct Test *NewTest(int sizeOfNumbers) {
return (struct Test*)malloc(sizeof(struct Test) + sizeof(int)*(sizeOfNumbers - 1));
}然后,您就可以通过使用
struct Test *test1 = NewTest(10);
test1->Numbers[0]...
test1->Numbers[1]...
test1->Numbers[9]...https://stackoverflow.com/questions/9952720
复制相似问题