动态数组

遵循原则

 → 在创建的时候从外层往里层,逐层创建;

 → 释放的时候从里层往外层,逐层释放。

构建所需函数

函数原型 返 回 功能说明
void *malloc(unsigned int size); 成功:返回所开辟空间首地址  失败:返回空指针 向系统申请 size字节的堆空间
void *calloc(unsigned int num, unsigned int size); 成功:返回所开辟空间首地址  失败:返回空指针 按类型申请num个size字节的堆空间
void free(void *p); 无返回值 释放p指向的堆空间
void *realloc(void *p,unsigned int size); 成功:返回新开辟空间首地址  失败:返回空指针 将p指向的堆空间变为 size

(详细见:https://www.runoob.com/w3cnote/c-dynamic-array.html

eg:创建一维数组

#include <stdio.h>
#include <stdlib.h>
int main()
{
  int n1,i;
  int *array;
  printf("请输入所要创建的一维动态数组的长度:");
  scanf("%d",&n1);
  array=(int*)calloc(n1,sizeof(int));
  for(i=0;i<n1;i++)
  {
     printf("%d\t",array[i]);
  }
  printf("\n");
  for(i=0;i<n1;i++)
  {
     array[i]=i+1;
     printf("%d\t",array[i]);
  }
  free(array);//释放第一维指针 
  return 0;
}

结果如下

转自

 https://blog.csdn.net/zhanshen112/article/details/80758850?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.channel_param

posted @ 2020-07-29 14:14  lunanana  阅读(91)  评论(0编辑  收藏  举报