C++中动态改变数组⼤⼩的三种函数malloc、calloc、realloc malloc
作⽤:可以提前给数组分配好⼤⼩。
参数:只有⼀个,sizeof(类)*n,计算⼀共需要n个类的⼤⼩,即n个对象。
强制类型转换:malloc函数的返回类型默认为void *,所以要强制转换为指向类的指针类型。
数据初始化:malloc申请空间成功后,并不会初始化,分配到的空间中的数据都是随机数。
代码:向系统申请3个student⼤⼩的内存空间。
student *p2=(student *)malloc(sizeof(student)*3);
calloc
作⽤:可以提前给数组分配好⼤⼩。
参数:有两个,(sizeof(类),n)    ⼀个类的空间⼤⼩、n是类的个数。
强制类型转换:calloc函数的返回类型默认为void *,所以要强制转换为指向类的指针类型。
数据初始化:calloc申请空间成功后,会初始化,分配到的空间中的数据都初始化为0。
代码:向系统申请3个student⼤⼩的内存空间。
student* st = (student*)calloc(sizeof(student), 3);
realloc
作⽤:可以动态的增加数组⼤⼩,即随时可以追加空间。
参数:有两个,(p,sizeof(类)*n)  p是要改变内存⼤⼩的指针名、后⾯是新的⼤⼩。
强制类型转换:realloc函数的返回类型默认为void *,所以要强制转换为指向类的指针类型。
数据初始化:realloc申请空间成功后,不会初始化。
molloc函数
代码:追加3个空间⼤⼩。
st = (student*)realloc(st, sizeof(student)*(6));

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。