【发布时间】:2019-02-11 23:57:14
【问题描述】:
我有这个结构:
struct car{
char name[9];
};
我有这个数组:
char list_of_names[10][9] = {"toyota", "b", "c", "d", "e", "f", "g", "h", "i", "j"};
如您所见,我只输入了第一个元素;其余的暂时是填充物。我正在尝试将第一个元素(丰田)复制到我的结构汽车“名称”变量中。这是我尝试过的:
//Initialize struct variable
struct car c;
memcpy(c.name, list_of_names[0], 9);
我也尝试过使用 strcmp,但每次尝试时,我在 c.name 中得到的输出总是一些随机数。我什至尝试过取消引用指针,例如:
memcpy(c.name, *(list_of_names[0]), 9);
但无济于事;错误是一样的。有什么建议么?谢谢!
编辑
这是我为测试/打印所做的:
struct car c;
memcpy(c.name, list_of_names[0], 9);
printf("printing!%d\n", c.name);
输出:
-13423455 (gibberish)
【问题讨论】:
-
memcpy(c.name, list_of_names[0], 9);似乎是正确的。请发布您的其余代码(minimal reproducible example),因为该错误可能在其他地方。 -
您还没有向我们展示输出
c.name的代码。请发帖minimal reproducible example。 -
你的意思是
strcpy;strcmp不起作用。 -
如果要打印字符串,请使用
%s,而不是%d。 -
一个体面的编译器会警告你,如果你打开警告...提示提示。
标签: c pointers printf format-string