C:如何初始化矢量



我想初始化类型的向量

struct vector
{
size_t capacity;
size_t size;
int *data;
};

我做到了,但我不确定:

struct vector *vector_new();
{
struct vector *vect;
vect = malloc (1*sizeof(vect));
vect->capacity = 1;
vect->size = 0;
int *data;
data = malloc (1*sizeof(int));
}

我想我需要分配两个内存空间,一个用于保存"结构向量",另一个用于数据。我应该使用malloc((还是calloc((?此外,如果内存不足,我怎么会出错呢?感谢

您的代码应该看起来像这样:

#define INITIAL_CAPACITY 10    // initial capacity, choose some appropriate value
// between 1 and N
struct vector *vector_new();
{
struct vector *vect = malloc (sizeof(struct vector));
vect->capacity = INITIAL_CAPACITY;
vect->size = 0;
vect->data = malloc(sizeof(int) * INITIAL_CAPACITY);
return vect;
}

这是一个简单的部分,现在您需要编写允许将一些数据放入向量的函数,然后当大小大于容量时,您可能需要使用realloc函数。

为了简洁起见,此代码中没有进行错误检查。

对于错误处理,您可以从vector_new函数返回NULL

相关内容

  • 没有找到相关文章

最新更新