前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何实现动态数组

如何实现动态数组

作者头像
杨鹏伟
发布2020-09-11 00:14:29
8750
发布2020-09-11 00:14:29
举报
文章被收录于专栏:ypw

1.使用指针~~ 2.自己申请内存 例如:如第一块的代码,若想实现一个动态数组,必须写成二的部分,用完之后必须给free(); 必须加上头文件#include<malloc.h> 常用格式:

代码语言:javascript
复制
{
	int n;
	int *a;
	scanf("%d",&n);
	a = (int *)malloc(n*sizeof(int ))
}

举个例子:

代码语言:javascript
复制
#include<stdio.h>
int main(){
	int n;
	scanf("%d",&n);
	int shzu[n];
	... ...
	return 0;
} 
代码语言:javascript
复制
#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 使用格式:

代码语言:javascript
复制
{
	int n;
	int *a;
	cin>>n;
	a = new int[n];//
	... ...
	delete a;
}

特点: 1.new 是 c++ 关键字的一部分; 2. new以具体类型为单位进行内存分配; 3. new在申请单个类型变量是时可以进行初始化;而malloc不可以; 语法: 1.变量申请:

代码语言:javascript
复制
Type * pointer = new Type[N];
//....
delete  pointer;

表达式用于分配内存以包含一个类型类型的单个元素。 2.数组申请:

代码语言:javascript
复制
Type* pointer = new Type[N];
//...
delete[] pointer;

表达用于分配类型类型的元素的块(数组),其中N是表示这些元素的量的整数值。

Example:

代码语言:javascript
复制
int * foo;
foo = new int [5];

在这种情况下,系统为int类型的五个元素动态分配空间,并返回指向序列的第一个元素的指针,该指针被分配给foo,因此,foo现在指向一个有效的内存块,其中包含五个int 类型元素的空间。 这里,foo是一个指针,因此,foo指向的第一个元素可以用表达式foo[0];或者*foo来访问。可以用foo[1]或者 *(foo+1)访问第二个元素,依次类推。 一个简单的例子可以帮助大家理解这个,可以自己运行试一试。

代码语言:javascript
复制
#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]=%d\n",i,p[i]);
		
		
	}
	delete[] p;
	return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档