c - 运行时错误 - c 中的指针

标签 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";
    printArray(abc, 26);
    return 0;
}

最佳答案

什么时候p不小于p + len

for( p ; p < p + len ; p++ ) // Loop forever

你可能想要这样的东西:

char* stop = p + len;
for( p ; p < stop ; p++ )

关于c - 运行时错误 - c 中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36272312/

相关文章:

c++ - `Cannot convert ' char(*)[50] ' to ' char** ' for argument ' 1 ' to ' void prac(char**) '` 将二维数组传递给函数时

php - PHP 的 sleep() 的实际用途是什么?

c++ - 基于不同字段的对象 vector 的排序函数

c++ - 结构和指针 C++

c - 做了一些指针数学但不起作用

c - C 中的关联数组

c - 简单变量 i 和 *(&i) 之间的区别;

c - 将变量放在程序不同部分的缓冲区中

c - C中并行计算的最佳方法

c++ - 我怎样才能通过引用传递这个指针?