C++练习:动态分配内存
题目要求
编写两个函数并测试:
第一个函数原型为 int *new_array(int n); 该函数可以根据参数n动态申请n个元素的整型数组,最后将数组指针返回。
第二个函数原型为 void init_array(int *p, int n,int c); 将指定的n个元素的数组每个元素的值均初始化为c。
用户输入数组大小n和待初始化的值c,调用new_array函数申请空间,再调用init_array初始化,最后输出这个数组的所有元素。
例如:输入
8 10
输出:
10 10 10 10 10 10 10 10
PS:我用的是visual studio 2019,所以不用加一些头文件
代码部分
#include<iostream>
using namespace std;
int* new_array(int n)
{
int* p;
p = new int[n];//开辟n个空间
return p;
}
void init_array(int* p, int n, int c)
{
for (int i = 0; i < n; i++)
{
*p++ = c;
}
}
void print_array(int* p, int n)
{
for (int i = 0; i < n; i++)
{
cout << p[i] << " ";
}
cout << endl;
}
void clear_array(int* p)
{
delete[]p;
}
int main()
{
/*编写程序:
编写两个函数并测试:
第一个函数原型为 int *new_array(int n); 该函数可以根据参数n动态申请n个元素的整型数组,最后将数组指针返回。
第二个函数原型为 void init_array(int *p, int n,int c); 将指定的n个元素的数组每个元素的值均初始化为c。
用户输入数组大小n和待初始化的值c,调用new_array函数申请空间,再调用init_array初始化,最后输出这个数组的所有元素。
例如: 输入
8 10
输出:
10 10 10 10 10 10 10 10*/
int* p, n, c;
cout << "请输入数据个数:";
cin >> n;
cout << "请输入初始值:";
cin >> c;
p = new_array(n);
init_array(p, n, c);
print_array(p, n);
clear_array(p);
return 0;
}
结果