分配随机号码c中的字节数

时间:2014-06-24 10:43:39

标签: c memory-management dynamic-memory-allocation

如何动态分配随机数。 C中的字节数?

(比方说)我想分配10 GB的内存,我该怎么做呢?哪个功能在这里使用会更好,如malloc,realloc或calloc(因为我不知道) b / w他们的差异。)

另外,我可以在内存中分配任何类型的数据(并且整个数据应该是同一类型吗?)?

2 个答案:

答案 0 :(得分:0)

C中有四个函数:

void *calloc(size_t nmemb, size_t size);
void *malloc(size_t size);
void free(void *ptr);
void *realloc(void *ptr, size_t size);

函数malloc()分配size个字节。函数calloc()分配nmemb*size个字节(即它为由nmemb个元素组成的数组分配内存;此函数也清除已分配的内存)。函数realloc()更改已分配块的大小。 free()将内存返回给系统。

答案 1 :(得分:0)

您可以使用malloc或calloc

SomeType *pointername = (SomeType*) malloc(numberof bytes for aloc.);
SomeType *pointername = (SomeType*) calloc(n,numberof bytes);//alocates n*number of bytes,and clears that memory with zero bytes

是的,您可以在该内存中放置任何想要的数据

我认为Malloc应该更快,因为它不会清除记忆。

当你已经有了内存并希望将它变大或变小时,就会使用Realloc。

只有当您想要将其作为na数组访问时,所有数据必须是相同的类型:

x=pointername[i];

,用指针访问它。