int * pArr; 

pArr = (int *)malloc(4 * length);

相当于 构造了这样一个数组   int pArr[length];

#include <stdio.h>
#include <malloc.h>void function(int * q) {//*p = 200;  //报错 因为没有变量*p//q = 200; //报错,类型不一致//**q = 200;  //*q是一个整型变量,只有指针变量前面才能加 **q = 200;//增加free(q) free(q); //释放q指向的内存地址      q指针没有指向}int main() {int *p = (int *)malloc(sizeof(int));*p = 10;printf("%d\n", *p);    //10function(p);printf("%d\n", *p);    //200/** 构造动态一维数组*/int a[5]; //静态的一维数组   int 占4个字节  共占20个字节int length;int * pArr;printf("请输入一维数组的元素个数:\n");scanf_s("%d", &length);pArr = (int *)malloc(4 * length);    //这里构造了一个动态的一维数组//对动态的一维数组进行操作for (int i = 0; i< length; ++i){scanf_s("%d", &pArr[i]);}printf("华丽的分割线------------------------\n");for (int i = 0; i < length; ++i){printf("%d\n", pArr[i]);}while (true){}return 0;
}

 free(pArr);  手动释放动态分配的内存

#include <stdio.h>
#include <malloc.h>void function(int * q) {//*p = 200;  //报错 因为没有变量*p//q = 200; //报错,类型不一致//**q = 200;  //*q是一个整型变量,只有指针变量前面才能加 **q = 200;//增加free(q) free(q); //释放q指向的内存地址      q指针没有指向}int main() {int *p = (int *)malloc(sizeof(int));*p = 10;printf("%d\n", *p);    //10function(p);printf("%d\n", *p);    //200/** 构造动态一维数组*/int a[5]; //静态的一维数组   int 占4个字节  共占20个字节int length;int * pArr;printf("请输入一维数组的元素个数:\n");scanf_s("%d", &length);pArr = (int *)malloc(4 * length);    //这里构造了一个动态的一维数组//对动态的一维数组进行操作for (int i = 0; i< length; ++i){scanf_s("%d", &pArr[i]);}printf("华丽的分割线------------------------\n");for (int i = 0; i < length; ++i){printf("%d\n", pArr[i]);}free(pArr);//手动释放动态分配的内存while (true){}return 0;
}

动态内存的分配用法和构造动态一维数组相关推荐

  1. 结构体的使用和动态内存的分配及释放

    结构体 什么是结构体?结构体是用户根据实际需要自己定义的复合数据类型.结构体的出现是为了表示一些复杂的数据,而普通的数据类型无法满足要求. 结构体的定义: struct Student //struc ...

  2. C语言程序设计 | 动态内存管理:动态内存函数介绍,常见的动态内存错误,柔性数组

    动态内存管理目录: 动态内存函数的介绍 常见的动态内存函数的错误 柔性数组 为什么会有动态内存管理呢 我们在日常使用中,创建一个数组,一个变量时都会开辟空间 如: int a; //在栈上开辟一个四字 ...

  3. 动态内存管理(开辟以及释放动态内存空间)

    文章目录 前言 malloc函数 calloc函数 realloc函数 free函数 - 避免内存泄漏 常见的动态内存错误 前言 如果我们被问道:如何创建一个可以根据用户需求来开辟大小的数组? 可能有 ...

  4. day17 - 动态内存的分配初步理解

    为什么需要动态内存分配? 1.动态内存很好的解决了传统数组的缺陷 2.传统数组也叫做静态的数组 动态构造一维数组的方法一: #include <stdio.h> #include < ...

  5. 【C++】动态内存管理/move/以及移动构造与移动赋值运算符

    文章目录 1 .对象移动与右值引用 实际应用过程中遇到的问题及其解决方案 c++中临时变量不能作为非const的引用参数 2. 动态内存管理类 3. 对象移动与右值引用 4. 移动构造与移动复制运算符 ...

  6. 动态内存的分配与释放

    1.new与delete运算 c++提供了两个中重要的运算符:new和delete.由于他们是运算符不是函数,因此执行效率更高. 运算符 功能 目 结合性 用法 new[] 动态分配 单目 自右向左 ...

  7. 操作系统:动态内存分区分配算法实现(C++)

    一.设计目标 使用 C++编程实现动态分区分配存储管理,解决存储分配时多道程序之间如何共享主存的存储空间的问题. 二.算法原理 1.首次适应算法 将空闲分区链以地址递增的顺序连接;在进行内存分配时,从 ...

  8. Linux中动态内存的分配与回收(heap, buddy system, stab)

    1.malloc 和free的原理(http://m.blog.csdn.net/article/details?id=39496057) 从操作系统角度来看,进程分配内存有两种方式,分别由两个系统调 ...

  9. C++ 动态内存管理:c/c++的动态内存管理,new/delete,operator new/delete,placement-new, 内存泄漏

    c/c++的动态内存管理 new/delete opeartor new/delete placement-new 内存泄漏 c/c++的动态内存管理 在开始之前首先要了解c和c++的内存分布,我简单 ...

最新文章

  1. linux查看软件包信息,Linux查看系统信息的一些命令及查看已安装软件包的命令...
  2. c++一日一练:让标准的输入输出流关联一个缓冲区
  3. 分类9个无理数并比较他们之间的分布差异
  4. c语言for循环加法,BigDecimal 在for循环中相加注意事项
  5. ERP顾问在甲方好还是乙方好?
  6. try-with-resources引起的Socket关闭,产生java.net.SocketException: Socket is closed?
  7. ggplot2绘图入门系列之二:图层控制与直方图
  8. c语言数组的实验报告结果思考,第七章实验报告(数组实验)
  9. Linux—计划任务管理
  10. Rhino(js的java实现组件)
  11. 【Luogu3478】【POI2008】STA-Station(动态规划)
  12. libtoolize: 未找到命令
  13. oracle罗马字符转数字,一些关于罗马字符的知识
  14. 正态分布及其如何检验
  15. 剑指offer系列——剑指 Offer 55 - I. 二叉树的深度
  16. Databricks中国启示录:一场蓄谋已久的技术与商业战 | 企服国际观察
  17. 科思创为全新概念车丰田LQ提供可持续解决方案
  18. java和ssm开发的医院体检预约系统有论文
  19. uni-app ios 添加测试新设备,只需下载描述文件
  20. [转]UserData使用总结 - lanyu

热门文章

  1. zabbixdocker里的mysql_基于Docker安装与部署Zabbix
  2. ARMA模型的性质之ARMA模型
  3. 5g虚拟技术旅游_5G造就文旅新时代,驴迹科技探索智慧出行创新领域
  4. linux删除文件_Linux中删除特殊名称文件的多种方式
  5. html表格字体格式转换,【转】常用HTML代码速查表
  6. C++基础13-类和对象之继承1
  7. opencv16-Sobel算子
  8. Python类的构造方法__init__(self)和析构函数__del__详解
  9. python 过滤文本中的标点符号(转)
  10. 实现多线程Callable接口