运行时错误-c中的指针

运行时错误-c中的指针,c,function,pointers,C,Function,Pointers,我写了一个用英语打印所有字母的程序,但是我写的代码中有一个运行时错误。它在哪里?为什么会这样? 你能帮我解决这个问题吗 void printArray(char* p, int len) { for( p ; p < p + len ; p++ ) { printf("%c", *p); } printf("\n"); } int main() { char* abc = "abcdefghijklmnopqrstuvwxyz";

我写了一个用英语打印所有字母的程序,但是我写的代码中有一个运行时错误。它在哪里?为什么会这样? 你能帮我解决这个问题吗

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;
}
什么时候p不小于p+len

您可能需要以下内容:

char* stop = p + len;
for( p ; p < stop ; p++ )
p无限循环

暗示

for(int i = 0; i<len ; i++ )
{
    printf("%c", p[i]);
}

因为你在编辑p的同时检查p
char* end = p + len;
for(p ; p < end; p++)

那么它应该可以工作了

您如何判断是否存在运行时错误?因为我试图运行它,但出现了运行时错误您收到消息了吗?你的电脑锁了吗?发生了什么事告诉你发生了错误?它在哪里这就是你应该告诉我的。然后我们可以告诉你为什么会发生这种情况。学习使用调试器。有三个答案表明存在无限循环,但您说存在运行时错误报告。这三个答案肯定都错了——我将全部投反对票。
char* end = p + len;
for(p ; p < end; p++)