为什么在引用带有越界索引的字符串时不会产生错误?

时间:2016-10-10 02:26:32

标签: c indexing

#include <stdio.h>

void removeString(char text[], int beg, int remove)
{
    int index;

    for(index = beg; text[index + remove] != '\0'; index++)
        text[index] = text[index + remove];

    text[index] = '\0';
}

int main(void)
{
    char text [] = "the wrong son";
    removeString(text, 3, 40);
    printf("%s\n", text);
}

1 个答案:

答案 0 :(得分:2)

C没有任何边界检查。你可以参考任何你喜欢的东西,这取决于你确保它有意义。

根据平台和其他因素,您可能会因为代码损坏内存和堆栈而导致垃圾,内存异常或任何其他随机崩溃。