【发布时间】:2012-06-08 00:14:19
【问题描述】:
我必须在 C++ 中分配一个结构数组,任何结构都包含两个 int 向量。这是我的结构:
typedef struct _Sample{
vector<int> contourX;
vector<int> contourY;
}Sample;
为了分配这个数组,我编写了以下代码:
data = (struct _Sample*) malloc(sizeof(struct _Sample) * nsamples);
当我尝试将 Sample 元素分配给 data[0] 时,运行时出现错误。问题出在哪里?
【问题讨论】:
-
矢量元素的大小仍为 0。您如何访问它们?
-
Sample * data = (Sample*) malloc(sizeof(Sample) * nsamples);//你使用的是typedef,所以使用"Sample"
-
为什么在 C++ 中使用过时的
typedef struct? -
typedef 的目的是让你不必做他所做的“struct _sample”......只是简单
-
@jdl,也许在 C 中;在 C++ 中,
struct Sample { /* ... */ };之后,Sample是完整的类型名称;不需要struct...
标签: c++ arrays struct allocation