我写了一个用英文打印所有字母的程序,但是我编写的代码中存在运行时错误。它在哪里?为什么会这样? 你能帮我解决一下吗?
void printArray(char* p, int len)
{
for( p ; p < p + len ; p++ )
{
printf("%c", *p);
}
printf("\n");
}
int main()
{
char* abc = "abcdefghijklmnopqrstuvwxyz";
printArray(abc, 26);
return 0;
}
答案 0 :(得分:4)
p
何时不会低于p + len
?
for( p ; p < p + len ; p++ ) // Loop forever
您可能需要以下内容:
char* stop = p + len;
for( p ; p < stop ; p++ )
答案 1 :(得分:1)
p < p + len
绝不是假的 - &gt;无限循环。
建议
for(int i = 0; i<len ; i++ )
{
printf("%c", p[i]);
}
答案 2 :(得分:0)
因为你在检查它时正在编辑p&#34; p&lt; p + len&#34;这个循环永远不会结束。 p将始终小于自身加上常数。 试试吧
char* end = p + len;
for(p ; p < end; p++)
然后它应该工作