我正在使用malloc创建一个数组,如下所示:
#include <stdio.h>
#include <stdlib.h>
void main(){
int * m = malloc(3 * sizeof(int));
int i;
m[0] = 1;
m[1] = 2;
m[2] = 3;
for (i = 0; i < 20; i++){
printf("%d \n", m[i]);
}
getchar();
}
如您所见,数组应为三个整数的大小。
我定义了前三个元素,然后从数组中打印出20个元素。但这怎么可能呢?如果malloc向数组分配了三个整数的内存,那么为什么数组仍然包含最初三个元素之后的其他数据?也许我误解了malloc的工作原理,在这种情况下,如何定义一个严格大小的数组,该数组将不包含我未添加到其中的随机数据?
谢谢