array = (struct record *)malloc(sizeof(struct record )*num)
就是开辟了num*sizeof(struct record )大小的连续空间
不过你后边对array进行 *** 作时候尽量不要用数组形式,用指针形式会比较好。
开辟好了,你这就是固定的num个元素的数组,
如果要增大这个数组中元素的个数,就是把这个数组变长的话,
只能重新申请新的总个数的空间大小,比如增长m个
就只能重新申请 (struct record *)malloc(sizeof(struct record )*(num+m))
然后把原来的数据复制过去,因为数组是连续的空间,必须一次分配好全部内存才行。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)