C++动态分配

C语言是利用库函数malloc和free来分配和撤销内存空间的;C++同样提供了较简便而功能较强的运算符new和delete来取代malloc和free函数。

在C++中,new和delete是运算符,不是函数,因此执行效率高,为了与C语言兼容,C++仍保留malloc和free函 数,但不建议读者使用malloc和free函数,而是使用new和delete运算符。

new int; //开辟一个存放整数的存储空间,返回一个指向该存储空 间的地址
new int(100)//开辟一个存放整数的空间,并指定该整数的初值为100,返回一个指向该存储空间的地址
new char[10];//开辟一个存放字符数组的空间,返回首元素的地址
new int[3][4]; //开辟一个存放二维整型数组的空间,返回首元素的地址
float *point=new float(3.1415);//开辟一个存放单精度数的空间,并指定该实数的初值为3.1415,将返回的该空间的地址赋给指针变量point

new运算符使用的一般格式

new 类型 [初值]

在C++中,用new分配数组空间时不能指定初值,如果由于内存不足导致无法正常分配空间,则new会返回 一个空指针NULL,读者可以根据该指针的值判断分配空间是否成功。

C++在动态分配或撤销空间时,往往将new、delete两个运算符和结构体结合使用。

经典案例:C++实现开辟空间存放结构体变量。

#include<iostream>//预处理
#include<string>
using namespace std;//命名空间
struct Student
{int num;//学号 string name;//姓名 char sex;//性别
};
int main()//主函数
{Student * point;//定义结构体指针变量 point=new Student;//用new运算符开辟一个存放Student型数据的空间 point->num=10001;//赋值 point->name="yan xiao lin"; //赋值 point->sex='M';//赋值 cout<<point->num<<endl;//输出学号 cout<<point->name<<endl;//输出姓名 cout<<point->sex<<endl;//输出性别 delete point;//撤销空间 return 0; //函数返回值为0;
}

编译运行结果:

10001
yan xiao lin
M--------------------------------
Process exited after 2.318 seconds with return value 0
请按任意键继续. . .

9.8 C++动态分配​mp.weixin.qq.com

c malloc结构体_9.8 C++动态分配 | 存放结构体变量相关推荐

  1. linux中c语言结构体详解,Linux C语言结构体-学习笔记

    Linux C语言结构体简介 前面学习了c语言的基本语法特性,本节进行更深入的学习. 预处理程序. 编译指令: 预处理, 宏定义, 建立自己的数据类型:结构体,联合体,动态数据结构 c语言表达式工具 ...

  2. c语言自定义的结构体,c语言定义多个结构体

    本文收集整理关于c语言定义多个结构体的相关议题,使用内容导航快速到达. 内容导航: Q1:C语言中定义一个结构体如何在不同的.C文件中使用. #include 然后就用啊 正式一点的,可以声明 ext ...

  3. c语言常量结构体的成员,c语言之结构体

    c语言之结构体 1.结构体基础知识 C语言提供了两种类型的聚合数据类型(能够同时存储超过一个的单独数据),数组和结构.数则是相同类型的元素的集合,而结构也是一些值的集合,这些值称为它的成员,单一个结构 ...

  4. c语言用数组直接填充结构体,C语言第11题:结构体数组的定义与使用 + 结构体数组排序...

    C语言第11题:结构体数组的定义与使用 + 结构体数组排序 C语言第11题:结构体数组的定义与使用 + 结构体数组排序 注意: 一下赋值是不能使用的 但是在结构体中是可以直接进行赋值操作的 st[1] ...

  5. c语言指针变量输出不了共用体,瘋子C语言札记(结构体/共用体/枚举篇)

    瘋子C语言笔记(结构体/共用体/枚举篇) (一)结构体类型 1.简介: 例: struct date { int month; int day; int year; }; struct student ...

  6. matlab单元数组与结构体的区别,MATLAB中的结构体和单元数组

    MATLAB中的结构体和单元数组 一.结构: x.real=10 x.imag=5 增加字段 x.scale=1 使用struct函数 s=struct('field1',values1,'field ...

  7. c语言结构体共用体枚举实例程序,10-C语言结构体-共用体-枚举

    结构体是什么? 结构体和数组一样属于构造类型 数组是用于保存一组相同类型数据的,而结构体是用于保存一组不同类型的数组 定义结构体 在使用结构体之前必须先定义结构体类型,因为C语言不知道你的结构体中需要 ...

  8. c语言结构体讲解,C语言基础之结构体讲解

    结构体 结构体是一种数据结构. int .float等是基本数据结构. 数组也是一种数据结构,但是数组存放的数据类型比较单一,结构体解决了数组里不能存放多种类型数据的这种缺陷. 1.结构体的声名 声名 ...

  9. c语言 typeof 结构体,Go语言通过反射获取结构体的成员类型

    任意值通过 reflect.TypeOf() 获得反射对象信息后,如果它的类型是结构体,可以通过反射值对象(reflect.Type)的 NumField() 和 Field() 方法获得结构体成员的 ...

最新文章

  1. webdriver For selenium
  2. HDU 2035.人见人爱A^B-快速幂
  3. 普通索引和唯一索引,傻傻分不清楚?
  4. SAP C4C里前台Opportunity搜索的响应明细
  5. 从graphql endpoint获取schema文件
  6. C++const的多种用法
  7. C# 使用List泛型读取和保存文本文件(转载)
  8. PHP开发网站全过程技术知识分析
  9. Linux文件系统(七)---系统调用之open操作(二) 之 get_unused_fd
  10. matlab钢琴音教程,弹琴吧 - 今天聊一聊钢琴扒带及MIDI制作,使用音
  11. 通过有限差分和matlab矩阵运算直接求解一维薛定谔方程,通过有限差分和MATLAB矩阵运算直接求解一维薛定谔方程...
  12. 世硕电子厂的故事!!测!
  13. Web导出Excel总结
  14. 河北赛区|数学建模国赛河北赛区成绩发布
  15. 快鲸scrm教你用游戏化思维做社群运营
  16. 带附件/密送/抄送的 javaMail 邮件发送 -- java_demo(两种实现方式)
  17. nacos和eruka的区别
  18. android-柱状图、折线图、x轴、y轴绘制以及实例代码
  19. nose-report
  20. Wordpress 网站运维 | HTTPS安全证书绑定

热门文章

  1. require.jsAMD模块化编程
  2. 虚拟路由器冗余协议-VRRP
  3. Node.js框架对比:Express/Koa/Hapi
  4. CentOS cannot change locale UTF-8解决方法及设置中文支持
  5. Redis面试 - Redis的持久化机制
  6. Go开发报错 -- Golang strings.Builder type undefined
  7. Linux中Tomcat 服务的搭建
  8. linux创建脚本文件auto,linux 自动化部署脚本
  9. Python学习笔记:文件读/写方法汇总
  10. 【熊猫多模式站群开发日志】流程总览