【发布时间】:2013-05-17 16:18:19
【问题描述】:
我有一个自己的函数的问题,应该根据字符的数量将 str2 复制到 str1。
char * strncpy_own(char * str1, char * str2, int c)
{
int i;
for( i = 0; i < c; i++, str1++, str2++ )
{
*str1 = *str2;
}
*(str1 + 1) = '\0';
return str1;
}
请帮助,当它启动时它立即终止并说:CLearningsss 已停止工作(我的项目名称)。
【问题讨论】:
-
你要确保
size of str1 >= strlen(str2) + 1不会写入垃圾内存,然后使用malloc为str1分配内存 -
"C 代码中不能做什么"
-
你试过在调试器中单步执行吗?另外,请考虑发布Short, Self-Contained, Compilable Example。
-
为什么不从
strlen(str2)获取字符数,而不是使用c? -
在向我们展示之前,请确保您的最小测试用例是可编译的。继续编写您的最小的、可编译的测试用例,它会产生症状并在完成后提供给我们。确保它有一个 main 入口点并且是可编译的。我真的不能这么说......你会惊讶于有多少人忘记让他们的测试用例最小化和可编译。你已经有了minimal,现在专注于compilable。