所以我的问题有点烦人。我必须创建一个称为vector的结构,该结构包含一个字符串〜字符数组。供以后使用。我到目前为止所写的内容:
vector.h
// forward declare structs and bring them from the tag namespace to the ordi$
typedef struct Vector Vector;
// actually define the structs
struct Vector {
int SortPlace;
char LineContent[100];
};
vector.c
// Initialize a vector to be empty.
// Pre: v != NULL
void Vector_ctor(Vector *v) {
assert(v); // In case of no vector v
(*v).SortPlace = 0;
(*v).LineContent[100] = {""};
}
我的错误消息是:
vector.c: In function ‘Vector_ctor’:
vector.c:13:24: error: expected expression before ‘{’ token
v->LineContent[100] = {""};
由于我是C编程新手,因此有点迷失了。基本上我想创建一个没有内容的向量。
任何帮助将不胜感激。 问候
答案 0 :(得分:2)
v->LineContent[100]
是一个char
,您试图对其进行初始化,就好像它是一个数组/ char *
。
如果您已经有v
,
memset(v, 0, sizeof(struct Vector));
将其归零(您必须#include <string.h>
)。
写作
struct Vector new_vector = {0};
声明new_vector
并将其所有内容初始化为\0
。
答案 1 :(得分:0)
您可以使用{}
指定数组中各个元素的值(在这种情况下,为charts) or, as this is a special case, use
“” for the string (a null-terminated sequence of
图表)来进行初始化。您写的是两者的结合。