如何实现动态数组
时间:2022-07-24
本文章向大家介绍如何实现动态数组,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.使用指针~~ 2.自己申请内存 例如:如第一块的代码,若想实现一个动态数组,必须写成二的部分,用完之后必须给free(); 必须加上头文件#include<malloc.h> 常用格式:
{
int n;
int *a;
scanf("%d",&n);
a = (int *)malloc(n*sizeof(int ))
}
举个例子:
#include<stdio.h>
int main(){
int n;
scanf("%d",&n);
int shzu[n];
... ...
return 0;
}
#include<stdio.h>
#include<malloc.h>
int main(){
int n;
scanf("%d",&n);
int *shzu = (int *)malloc(sizeof(int)*n);
... ...
free(shuzu);
return 0;
}
1.malloc函数的参数为所需申请内存的大小:以字节为单位。 2.malloc函数返回一个void*类型的地址,必须通过强制类型转换,才能赋值给特定的指针变量 int *pint = (int *)malloc(sizeof(int ) *100): 3.分配的内存不在使用的时候一定要释放: free(pint);
那么在c++中也有相应的动态数组的函数定义。 所用到的函数是 new ,delete 所在头文件:iostream 使用格式:
{
int n;
int *a;
cin>>n;
a = new int[n];//
... ...
delete a;
}
特点: 1.new 是 c++ 关键字的一部分; 2. new以具体类型为单位进行内存分配; 3. new在申请单个类型变量是时可以进行初始化;而malloc不可以; 语法: 1.变量申请:
Type * pointer = new Type[N];
//....
delete pointer;
表达式用于分配内存以包含一个类型类型的单个元素。 2.数组申请:
Type* pointer = new Type[N];
//...
delete[] pointer;
表达用于分配类型类型的元素的块(数组),其中N是表示这些元素的量的整数值。
Example:
int * foo;
foo = new int [5];
在这种情况下,系统为int类型的五个元素动态分配空间,并返回指向序列的第一个元素的指针,该指针被分配给foo,因此,foo现在指向一个有效的内存块,其中包含五个int 类型元素的空间。 这里,foo是一个指针,因此,foo指向的第一个元素可以用表达式foo[0];或者*foo来访问。可以用foo[1]或者 *(foo+1)访问第二个元素,依次类推。 一个简单的例子可以帮助大家理解这个,可以自己运行试一试。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int *p = new int ;
*p = 5;
*p = *p +10;
cout<<p<<endl;
cout<<*p<<endl;
delete p;
p = new int[10];
for(int i=0;i<10;i++){
p[i] = i+1;
printf("p[%d]=%dn",i,p[i]);
}
delete[] p;
return 0;
}
- Python基本数据类型
- C++对象的赋值和复制
- C++区别于其他语言的知识点总结
- SQL连接查询(最全面)
- Java Beans
- 呐你们要的算法(一)No.17
- 使用Python生成一张用于登陆验证的字符图片
- Jupyter notebook的安装方法
- Linux学习第三十四篇:rsync通过服务同步,Linux系统日志,screen工具
- 小程序支付详解+源码(客户端+服务端)
- Python Windows下分布式进程的坑(分布式进程的一个简单例子)
- Python pdb调试
- linux学习第三十五篇:LAMP架构介绍,MySQL_MariaDB介绍,MySQL安装
- 尝试克服一下小伙伴对神经网络的恐惧No.26
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法