我有类似的东西:
static const char *array[] = {
"One String",
"Second String",
"Third",
"etc",
};
我想定义一个新的字符串变量new_var,并使用数组中的第一个字符串对其进行初始化。所以数组[0]。如下所示:
static const char new_var[] = &array[0];
然而,编译器的错误是此行的初始化程序无效。
我试图在任何函数范围之外初始化变量,因此不希望使用任何string.h函数,如strcpy等。
请建议可能在此使用的任何技巧。
答案 0 :(得分:0)
如果您发布实际错误会有所帮助,但是,您的类型是错误的,这可能是问题所在。相反,尝试:
static const char* new_var = array[0];
答案 1 :(得分:0)
您遇到类型错误。
&array[0]
是指向char的指针。
new_var
是一组字符。
如果要将new_var
初始化为非文字字符串,则必须复制字符并附加终止0.但在此之前,您必须将new_var
定义为足够大长度。
您可能需要不同的设计。例如,让new_var成为char的指针;然后你可以使用static const char *new_var = &array[0];
。指针是分享一系列价值观的方式。