【发布时间】:2019-05-05 13:55:45
【问题描述】:
我正在尝试将内存静态分配给指向名为“mini”的结构的指针数组。 “迷你”结构用作存储索引和数据的一种方式,因此我可以通过对指向该结构的指针进行排序来进行间接排序。当我声明数组时,数组被分配内存来存储指针,但指针本身没有为“迷你”结构分配任何内存。重要的是它是静态分配的,因为它是排序算法的一部分,所以我试图避免动态内存分配。
这是 mini 的声明和指向 mini 的指针数组:
typedef struct {
long long index;
string data;
} mini;
static mini* ssn[1010000];
我可以动态分配如下:
for (int j = 0; j < 1010000; j++){
ssn[j] = new mini();
}
当我尝试为每个指针静态分配内存时,问题就出现了。以下是我尝试过的一些事情:
static mini* ssn[1010000] = {{0,""}};
static mini* ssn[1010000] = {{new mini()}};
这些都没有成功编译。 有没有办法为数组中的每个指针静态分配内存?
【问题讨论】:
-
您没有声明一个名为
mini的struct,而是一个名为mini的匿名struct的实例。看起来你来自 c 并且在这里混淆了很多东西。 -
第一个问题是你没有使用
std::vector,而不是简单的数组。第二个问题是为什么要立即分配1010000元素?