c++动态内存分配

void关键字的使用规则:

         1. 如果函数没有返回值,那么应声明为void类型;

         2. 如果函数无参数,那么应声明其参数为void;

         3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void * ;

          4. void不能代表一个真实的变量;

void体现了一种抽象,这个世界上的变量都是“有类型”

void *malloc(size_t size);
//分配成功则返回指向被分配内存的指针(此存储区中的初始值不确定),否则返回空指针NULL
void free(void *pointer);//释放
int *p = (int *)malloc(2 * sizeof(int));
free(p);
void *memcpy(void *dst, void const *src, size_t length);
//函数从src的起始位置复制length个字节到dest的内存起始位,memcpy( )函数 并不关心被复制的数据类型,只是逐字节地进行复制,这给函数的使用带来了很大的灵活性,可以面向任何数据类型进行复制。 
//注意: 
dest 指针要分配足够的空间,也即大于等于 num 字节的空间。如果没有分配空间,会出现断错误。 
dest 和 src 所指的内存空间不能重叠。 
void *memmove(void *dst, void const *src,size_t length);

memmove()函数函数和memcpy()函数所进行的操作差不多,不过会考虑重叠的问题,所以,对于源和目标参数可能存在重叠问题,那么就可以使用memmove(),当src 和 dest 所指的内存区域重叠时,memmove() 仍然可以正确的处理,不过执行效率上会比使用 memcpy() 略慢些。```

#if() {}//为真就遍历
#else
#endif


猜你喜欢

转载自blog.csdn.net/weixin_41475854/article/details/84868186