【发布时间】:2014-01-29 23:48:43
【问题描述】:
我有一个关于在 C 中连接两个字符串以说“Ring Ding”的问题 我有一个 char * d ,我 malloc 14*sizeof(char) 只是为了安全起见,在末尾包含 \o 字符,但我的函数仍然存在段错误,我不知道为什么。它说我不能隐式定义 strcopy。我在想我的问题是我不能出来说“Ring”,但我可能弄错了。
char * k = malloc(14*sizeof(char));
strcopy(k, "Ring");
strcat(k, "Ding");
printf("%s\n", k);
【问题讨论】:
-
strcopy应该是strcpy。你确定代码有段错误吗?这是一个运行时问题,我希望您的代码无法链接,导致您无法运行任何程序。 -
只需将其从 strcopy 更改为 strcpy 即可修复!谢谢!
-
如果您修正了错字,您展示的代码应该可以在没有核心转储的情况下安全运行,除非您事先进行了极端的内存分配并且空间不足。您应该检查内存分配,但假设可行,其余的也应该可以正常工作。所以,如果问题不在这段代码中,它可能在你程序的其他地方——那么你的代码还在做什么呢?
-
请更新您的问题,以显示一个 完整 程序,该程序显示 seg 错误。正如@simonc 所说,拼写错误的函数名称应该意味着您首先不会获得可执行文件,因此您不会出现段错误。您可以运行从早期版本的源代码生成的可执行文件吗?重新编译前删除可执行文件。
标签: c string concatenation