Malloc,数组超出范围,但地址在内存的以下部分

时间:2019-02-28 07:37:16

标签: c memory-management malloc out-of-memory

我是C编程的新手,正在研究内存分配。我想看看如果数组中的元素多于数组的大小会发生什么。 例如:我用3作为数组大小初始化数组大小,但是我输入了4个值。我认为一定是错的。但是,我在编译代码时,一切似乎正常。 我不明白为什么会这样,我正在等待您的帮助。我的代码如下。谢谢。

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

int main()
{

    int *array;
    int array_size = 3, i=0;
    array = (int*) malloc ( sizeof(int) * array_size );

        if(array == NULL)
            printf("ERROR \n");

    array[0] = 21;
    array[1] = 22;
    array[2] = 23;
    array[3] = 24;

    for ( i = 0; i < array_size+1 ; i++ )
        printf("Value: %d , Address: %u \n", array[i], &array[i]);

    free(array);
    return 0;
}

0 个答案:

没有答案