【发布时间】:2012-12-14 01:50:56
【问题描述】:
我正在尝试用 C 语言编写 strlen 函数,但它不起作用。
int strlen(char*string)
{
int length=0;
while(length[string]!='0')
{
++length;
}
free(string);
return length;
}
无论我运行多少次编译器,它都会不断崩溃。我的代码有什么问题?
【问题讨论】:
-
length[string]?仅仅因为它有效,并不意味着你应该这样做! -
您
free()ing 一个您可能从未分配过的字符串的任何具体原因? -
为什么你认为重新编译它会修复一个编程错误?
-
C 字符串不以 0 digit 结尾,它们以 0 byte 结尾。
-
错误的
free()调用名为“malloc”的 OP 发布的代码让我发笑。对不起。