我正在尝试创建一个可以计算字符串字符的递归函数,但我不知道为什么我的代码会崩溃我的系统.我没有更多的想法.有什么建议:
long slength (const char ntca[])
{
int length = 0;
if (ntca[length] == '\0'){
return 0;
}
else{
return slength(ntca)+1;
}
}
Run Code Online (Sandbox Code Playgroud)
当前代码slength递归调用相同的缓冲区.这将一直持续到堆栈溢出.
您需要将缓冲区减少一个字符,并为每个递归调用的长度计数加1
return slength(ntca+1)+1;
// ^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
924 次 |
| 最近记录: |