在c中的malloc之后的默认值是什么? [英] what is the default value after malloc in c?

查看:780
本文介绍了在c中的malloc之后的默认值是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下代码:

int *p;

p = (int*)malloc(sizeof(int) * 10);

但是这个有10个元素的int数组的默认值是什么?都是0吗?

but what is the default value of this int array with 10 elements? are all of them 0?

推荐答案

实际内容不确定.

C11,第7.22.3.4节malloc函数

malloc函数为对象的大小分配空间,该对象的大小由size和 值不确定的.

C11, § 7.22.3.4 The malloc function

The malloc function allocates space for an object whose size is specified by size and whose value is indeterminate.

但是,操作系统通常将此内存空间初始化为0(请参阅此答案).您可以使用calloc来确保每个位都设置为0.

However, the operating system often initializes this memory space to 0 (see this answer). You can use rather calloc to be sure that every bits are setted to 0.

这篇关于在c中的malloc之后的默认值是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆