小编Jac*_*b G的帖子

C中多次循环失败后出现段错误

我正在做一个练习,创建一个数组并用整数填充元素。我首先将数组的长度输入到 malloc 中作为大小。然后,我在 for 循环中扫描数组中每个点的元素。

这是代码

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

int scaning(int ** array){
    int size;
    scanf("%d", &size);
    *array = malloc(sizeof(int)*size);
    //printf("%d\n", size);
    for (int i=0; i<=size; i++){
        int num;
        scanf("%d", &num);
        *array[i] = num;
    }

    return size;
}


int main(){
    
    int * array;
    int zero;
    zero = scaning(&array);
    //printf("%d\n", zero);
    printf("LOOPS\n");
    for (int i=0; i<= zero; i++){
        printf("%d\n", array[i]);
    }
    return 0;
}

Run Code Online (Sandbox Code Playgroud)

在我输入元素填充数组两次后,出现段错误。我通常输入 5 个数组的大小,输入 2 个数字,然后它就会崩溃。不知道我哪里出错了。有任何想法吗?

c for-loop pass-by-reference operator-precedence dynamic-memory-allocation

0
推荐指数
1
解决办法
39
查看次数