gpt4 book ai didi

c - 如何使用默认值动态初始化数组?

转载 作者:太空宇宙 更新时间:2023-11-04 00:30:53 24 4
gpt4 key购买 nike

我正在 C 4.3.2 中初始化大小为 100000000 的数组(unsigned short int),以及其他两个大小为 1000000 的 int 数组。但是在提交给 Online judge 时,它​​给出了 SIGSEGV错误。

因此我决定使用默认值 0 动态初始化我的数组,因为通过循环添加值需要很多时间。

我的问题是如何使用默认值动态初始化数组?

最佳答案

您可以使用 void *calloc(size_t nmemb, size_t size);使用0,

初始化内存的函数

The calloc() function allocates memory for an array of nmemb elements of size bytes each and returns a pointer to the allocated memory. The memory is set to zero. If nmemb or size is 0, then calloc() returns either NULL, or a unique pointer value that can later be successfully passed to free().

 calloc(number of elements, sizeof(type));

或者您也可以显式地使用memset() 来初始化由malloc() 调用分配的内存。

注意 calloc() 也不是魔法 - 它还会在某处使用循环来用全零替换垃圾。

另请参阅: Why malloc() + memset() is slower than calloc()?

关于c - 如何使用默认值动态初始化数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17898703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com