realloc_malloc_calloc的区别

realloc
extern void *realloc(void *mem_address,unsigned int newsize);
newsize指定分配空间的大小,mem_address是原来的内存区域,将原有数据从头到尾复制到新的内存区域,然后释放原来的区域,返回新区域的首地址。


malloc
extern void *malloc(unsigned int num_bytes);
分配字节数为num_bytes到


calloc
extern void *calloc(unsigned n,unsigned size);

内存的动态存储区中分配n个长度为size的连续空间。

#include
int main()
{
    int num=5;
    int i;
    int *p=(int *)malloc(num*sizeof(int));
    int *p1=(int *)calloc(num,sizeof(int));
    printf("malloc 空间内乱码\n");
    for(i=0; i


你可能感兴趣的:(面向对象的C++)