分配数组与初始化指针

时间:2012-10-26 05:07:33

标签: c++ c initialization header-files

我有一个有阵列的结构。

struct Page_Directory {
public:
    int numEntries;
    int nextDirPage;
    int [] array;
};

但是,我总是希望这个数组具有一定的长度,因此这个结构的大小总是4 + 4 + 100 * 4字节。

我不希望有如下结构声明:

struct Page_Directory {
public:
    int numEntries;
    int nextDirPage;
    int *array;
};

因为这个结构的大小是4 + 4 + 4 = 12个字节(即使我使用newmalloc为条目分配内存。

现在,我该如何实现这一目标?我不能把头文件中的第一个声明放在头文件中,你不要在头文件中放入数组大小的细节,只是每个成员的类型。

2 个答案:

答案 0 :(得分:11)

如果您始终希望阵列具有一定的大小,则无法绕过 用一定的大小宣布它:

struct Page_Directory {
public:
    int numEntries;
    int nextDirPage;
    int array[100];
};

答案 1 :(得分:2)

<datatype> [] <array_name> ;
C ++中不允许

您也可以试试这个......

struct Page_Directory {
public:
    int numEntries;
    int nextDirPage;
    static int const size=100;
    int  array[size];
};
相关问题