这个问题在这里已有答案:
- 64 bit large mallocs 9个答案
如何动态分配随机数 . C中的字节数?
(比如说) I want to allocate 10 GB of memory ,我怎么能这样做,哪个函数在这里使用会更好,比如malloc,realloc或calloc(因为我不知道它们之间的区别) .
另外,我可以在内存中分配任何类型的数据(并且整个数据应该是同一类型吗?)吗?
这个问题在这里已有答案:
如何动态分配随机数 . C中的字节数?
(比如说) I want to allocate 10 GB of memory ,我怎么能这样做,哪个函数在这里使用会更好,比如malloc,realloc或calloc(因为我不知道它们之间的区别) .
另外,我可以在内存中分配任何类型的数据(并且整个数据应该是同一类型吗?)吗?
2 回答
C中有四个函数:
函数
malloc()
分配size
个字节 . 函数calloc()
分配nmemb*size
个字节(即它为由nmemb
元素组成的数组分配内存;此函数也清除已分配的内存) . 函数realloc()
更改已分配块的大小 . 并且free()
将内存返回给系统 .您可以使用malloc或calloc
是的,您可以将任何想要的数据放在该内存中
我认为Malloc应该更快,因为它没有清除记忆 .
当你已经拥有已经存在的内存而你想要使它更大或更小时,就会使用Realloc .
仅当您要将其作为na数组访问时,所有数据必须是相同的类型:
,用指针访问它 .