我开始学习 C 中的动态内存分配,到目前为止,我读过 malloc() 函数的所有地方都没有初始化新分配块的值。
这在 C 的较新版本中是否已更改?C99和C11?
我正在使用 Xcode 执行以下操作,并且所有值都被初始化为 0。
double *p = (double *) malloc(5 * sizeof(double));
printf("Address of p0 = %p | Valoe of p0 = %f\n", p, *p);
printf("Address of p1 = %p | Valoe of p1 = %f\n", p+1, *(p+1));
printf("Address of p2 = %p | Valoe of p2 = %f\n", p+2, *(p+2));
printf("Address of p3 = %p | Valoe of p3 = %f\n", p+3, *(p+3));
printf("Address of p4 = %p | Valoe of p4 = %f\n", p+4, *(p+4));
我认为这仅适用于函数 calloc()。