您好我有这个问题:为什么当我使用 malloc 为浮点数组分配内存时,它分配了我请求的更多空间?例如,在这段代码中,我试图分配一个十个“单元格”浮点数组,但如果我尝试访问其他单元格,它不会返回任何段错误错误:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
float *fk_array;
int main(int argc, char** argv){
fk_array = (float *) malloc(10 * sizeof(float));
int i;
fk_array[9] = 2.23;
fk_array[15] = 0.3;
for(i = 0; i<20 ; i++)
printf("%f\n",fk_array[i]);
free(fk_array);
return 1;
}
它返回我:
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
0.000000
2.230000
0.000000
0.000000
0.000000
0.000000
0.000000
0.300000
0.000000
0.000000
0.000000
0.000000
我哪里错了??