Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从malloc()提取垃圾数据的频率是多少_C_Memory_Malloc - Fatal编程技术网

从malloc()提取垃圾数据的频率是多少

从malloc()提取垃圾数据的频率是多少,c,memory,malloc,C,Memory,Malloc,在C语言中,我理解通过使用malloc,如果您从未使用过memset或calloc,偶尔可以分配包含一些垃圾数据的内存 提取垃圾数据的频率是多少 有没有一种安全的方法可以避免这种情况,而不必每次都使用calloc或memset?不能保证通过malloc分配的内存将被初始化为给定值 您应该确保构造函数初始化变量,并将分配的内存设置为sane值 不能保证通过malloc分配的内存将被初始化为给定值 您应该确保构造函数初始化变量,并将分配的内存设置为sane值 您必须始终担心拾取垃圾数据并将分配的内存

在C语言中,我理解通过使用malloc,如果您从未使用过memset或calloc,偶尔可以分配包含一些垃圾数据的内存

提取垃圾数据的频率是多少


有没有一种安全的方法可以避免这种情况,而不必每次都使用calloc或memset?

不能保证通过malloc分配的内存将被初始化为给定值


您应该确保构造函数初始化变量,并将分配的内存设置为sane值

不能保证通过malloc分配的内存将被初始化为给定值

您应该确保构造函数初始化变量,并将分配的内存设置为sane值

您必须始终担心拾取垃圾数据并将分配的内存初始化为程序中有意义的内容。

您必须始终担心拾取垃圾数据并将分配的内存初始化为程序中有意义的内容。

malloc函数基本上从两个不同的位置获取内存地点:

它直接从操作系统内核请求内存。在Linux和OS X等Unix系统上,这是通过mmap或sbrk系统调用完成的。内核中的内存总是从零开始初始化

它重用先前用free释放的内存。这总是被认为是充满了垃圾

只要使用calloc。calloc函数知道内存来自哪个池。如果它来自操作系统,那么它已经初始化为零,并且您可以免费获得零内存。如果内存是空闲的,那么calloc将为您归零。有关更多详细信息,请参阅

懒惰者小结:calloc函数已经执行了您想要的优化。

malloc函数基本上从两个不同的位置获取内存:

它直接从操作系统内核请求内存。在Linux和OS X等Unix系统上,这是通过mmap或sbrk系统调用完成的。内核中的内存总是从零开始初始化

它重用先前用free释放的内存。这总是被认为是充满了垃圾

只要使用calloc。calloc函数知道内存来自哪个池。如果它来自操作系统,那么它已经初始化为零,并且您可以免费获得零内存。如果内存是空闲的,那么calloc将为您归零。有关更多详细信息,请参阅

对懒惰者的总结:calloc函数已经执行了您想要的优化

有没有一种安全的方法可以避免这种情况,而不必每次都使用calloc或memset

至少在Windows中是这样的。直接致电:

虚拟函数窗口 在调用进程的虚拟地址空间中保留或提交页面区域。除非指定了MEM_RESET,否则此函数分配的内存将自动初始化为零

有没有一种安全的方法可以避免这种情况,而不必每次都使用calloc或memset

至少在Windows中是这样的。直接致电:

虚拟函数窗口 在调用进程的虚拟地址空间中保留或提交页面区域。除非指定了MEM_RESET,否则此函数分配的内存将自动初始化为零


未初始化的内存是未初始化的。总是。没有安全的方法。未初始化的内存是未初始化的。总是这样,没有安全的方法。