C++ Code:动态分配数组内存的六种方法

问题:

        如何快速给数组分配自定义长度的内存,方法有哪些?

        本博客提供六种方法介绍,包含各种常用用法,且代码片亲自 编写-注解-编译-通过,对读者负责。

阐述:

        提到动态分配C++的数组,我们想到的标签会有:malloc-free、new-delete、一维、二维...等等,本博客初创初心是各大公司企业都会青睐于在笔试或者面试中,要求应届生具备手写分配内存、或者排序之类的代码的能力,所以提供六种用法。

正文:


1、利用“malloc-free”动态分配一维数组:

#include 
#include //该头文件为malloc必须 
using namespace std;

int main()
{
	int len;
	int *p; 
	cout<<"请输入开辟动态数组的长度:"<>len;
	//长度乘以int的正常大小,才是动态开辟的大小 
	p = (int*)malloc(len*sizeof(int));
	cout<<"请逐个输入动态数组成员:"<>*p[i] 
		cin>>p[i];
	}
	cout<<"您输入的动态数组为:"<

2、利用“malloc-free”动态分配二维数组:


#include   
#include //该头文件为malloc必须   
using namespace std;  
  
int main()  
{  
    int row,col;  
    int **p;   
    cout<<"请输入开辟动态数组的行 & 列:"<>row>>col; 
    //开始开辟  
	p = (int**)malloc(row*sizeof(int*));//为数组的行开辟空间   
	for(int i=0; i>*p[i] [j]  
	        cin>>p[i][j];  
	    }  
	      
	//输出成员   
	cout<<"您输入的动态数组 各行各列 成员如下:"<



3、利用“new-delete”动态分配一维数组:


#include 
using namespace std;

int main()
{
	int len;
	cout<<"请输入开辟数组的长度:"<>len; 
	int *p = new int [len];
	
	//数据输入 
	cout<<"请逐个输入数据:"<>p[i];
	 } 
	 
	//数据反馈 
	cout<<"您分配的动态数组为:"<


4、利用“new-delete”动态分配二维数组:


#include 
using namespace std;

int main()
{
	int row,col;
	cout<<"请输入开辟数组的行 & 列:"<>row>>col; 
	//行的开辟 
	int **p = new int*[row];
	for(int i=0; i>p[i][j];
	 	} 
	 
	//数据反馈 
	cout<<"您分配的动态数组为:"<


5、利用“new-delete”动态分配二维数组:


#include 
#include
using namespace std;

int main()
{
	int row,col;
	cout<<"请输入行 & 列:"<>row>>col;
	//很复杂的结构:对于某些编译器,注意连空格都不可以忽略 
	vector > p(row,vector(col));
	
	//数据输入 
	cout<<"请逐一输入 各行各列 数据:"<>p[i][j];
		}
	
	//数据输出 
	cout<<"您输入的数据:"<

6、利用while的极其简单输入实现求和、求平均之类算法:


#include 
using namespace std;


int main()
{
	int sum=0,value=0;
	//实际上非数字就会结束循环 
	cout<<"请输入求和数字,以*号作为结束;"
	while(cin>>value)
	    sum += value;
	cout<<"您输入数据之和为:"<


总结:

以上方法有简单的,也有非常复杂而且古老的,用哪个、按照那种思路去做?主要看代码的用处和时间的复杂度要求;

希望大家及时提出交流意见~

希望有更多的知识点给大家分享~

你可能感兴趣的:(C++ Code:动态分配数组内存的六种方法)