【发布时间】:2012-07-08 23:24:16
【问题描述】:
让我们定义这个结构:
struct MyStruct {
int firstInt;
int secondInt;
char * firstString;
char * secondString;
};
我正在尝试像这样初始化一个结构:
MyStruct s = {4, 5, {'a', 'b', 'c'}, "abc"};
但它不起作用。有什么办法吗? (要求firstString结尾不能有'\0')
【问题讨论】:
-
指针是 NOT 数组。使用数组!
-
为什么不 MyStruct s = {4, 5, "abc", "abc"};?没有真正的语义差异;您必须在某处存储 firstString 只有 3 个字符的事实,并且 \0 可能会在您的版本中的 c 之后出现在内存中(如果有效)。
-
您可能希望接受您提出的问题的答案。
标签: c struct initialization