18.动态数组_动态分配内存与释放内存

复制代码
#include <stdio.h>
#include <stdlib.h>  
#include <unistd.h>
//1.静态数组
int i_arr1[3] = {1, 2, 3};

int size = 3;

int  main()
{
  //创建数组的三种方法
  /*1.静态数组
    特点:1.用常量表达式表示数组长度
        2.适用于静态内存和自动内存(可在函数内外定义)
  */
  int i_arr1[3] = {1, 2, 3};

  /*2.变长数组
    特点:1.用变量表达式表示数组长度
        2.只能在自动内存中使用(只能定义在函数内部)
        3.不能在声明数组是对数组初始化
        4.不能被static和extern修饰
  */
  int i_arr2[size] ;
  i_arr2[0] = 1;

  /*3.动态数组-malloc
    特点:1.不会为对象做初始化
  */
  int * ipt;
  ipt = malloc(size * sizeof(int));
  ipt[0] = 99;
  printf("malloc分配的内存:%d===%d\n", *ipt, *(ipt+1) );

  /*4.动态数组-calloc
    特点:1.会为对象做初始化,初始化为0
  */
  int * ipt2 = calloc(3,sizeof(int));
  printf("calloc分配的内存:%d===%d\n", *ipt2, *(ipt2+1) );



  return 0;
}
复制代码

 

posted @   学而不思则罔!  阅读(190)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示