【发布时间】:2015-10-16 17:36:29
【问题描述】:
在 C 中当我们使用 calloc 方法时;所有保留的内存将被初始化为0。
有没有办法用另一个值来初始化它而不遍历所有值? 例如:
int* example = calloc(100,sizeof(int));
这将创建一个包含 100 个零的数组,但我希望它是(例如)100 个。
【问题讨论】:
-
malloc 它并在 malloc 的块上调用 memset
-
假设我得到了一个结构体的初始化“对象”(示例当然是 struct* 类型)。是否会为 100 个内存位置中的每一个复制这个“对象”?
-
“众所周知”这一短语声称有问题的另一个例子。内存使用all bits zero 初始化,它不一定与
0/0.0或空指针相同。calloc和memset一样,对块的结构一无所知。而C 没有方法。calloc是一个函数! -
您的意思是如果机器上的 00000000 表示例如字符“a”。然后 calloc 会将所有内容初始化为 'a'?
-
1) 请使用
@向评论者致辞,否则您的评论可能会被忽视。 2)看我的回答。
标签: c initialization calloc