为什么我的C代码崩溃了?

时间:2018-02-12 19:18:16

标签: c arrays loops random

我正在尝试C中的语法,因为它对我来说是新的。我刚开始使用数组,循环和随机数,所以我写了这个非常简单的测试代码:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(NULL));
    int arr[9];

    for(int i=0; i<10; i++) {
        arr[i] = rand();
        printf("%d \n", arr[i]);
    }
}

我用gcc编译它并从命令提示符运行。运行正常,打印阵列中的每个元素......然后崩溃。为什么?代码逻辑有什么用吗?

提前谢谢!这是我在这里提出的第一个问题,所以如果我在提出问题时犯了任何错误,我会事先道歉。

1 个答案:

答案 0 :(得分:1)

您正在访问超出数组限制的内存(您没有权限),这会导致未定义的行为。你这样做是因为你有一个包含9个元素的数组,但你试图访问10.要纠正,你应该写:

create table someuser.table1 ...;

create index someuser.index1 ...;