首页 文章

分配随机号码c [重复]中的字节数

提问于
浏览
-4

这个问题在这里已有答案:

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

(比如说) I want to allocate 10 GB of memory ,我怎么能这样做,哪个函数在这里使用会更好,比如malloc,realloc或calloc(因为我不知道它们之间的区别) .

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

2 回答

  • 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() 将内存返回给系统 .

  • 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];
    

    ,用指针访问它 .

相关问题