【发布时间】:2014-04-10 19:44:14
【问题描述】:
以下代码不会将匹配项 2 的内容复制到键 [0]。 为什么会这样?
char **keys;
char matches[2000];
char *matches2;
matches2 =strtok(matches," ");
strncpy(keys[0],matches2, sizeof keys[0]);
【问题讨论】:
-
sizeof keys[0]是sizeof char*... -
不能这样编译
-
@user3521003:不编译什么办法? nneonneo 并没有建议修复代码,他是在指出一个问题。从语法上讲,它是
sizeof (char*)而不是sizeof char*,但这不是要使用的正确大小。此外,你还没有初始化keys,所以keys[0]是没有意义的。最后,strncpy()很少是正确使用的函数;见my rant on the topic。