指针与动态数组
本课属于 Coddy C++ 学习旅程的“逻辑与流程”单元。第 56 课,共 56 课。
挑战
简单编写一个程序,通过构建灵活的数字存储和处理系统来演示动态内存管理。本挑战将测试你对动态数组、内存分配、数组操作和正确释放内存的理解。
将提供以下输入:
- 一个整数
size,表示要存储的整数个数 - 接着是
size个整数,表示要存储在动态数组中的数字
你的程序应该:
- 从输入中读取大小
- 使用
new[]和指定的大小,动态分配一个整数数组 - 从输入中读取整数,并将它们存储在动态分配的数组中
- 计算数组中所有数字的总和
- 找出数组中的最大值
- 按照指定格式打印结果
- 使用
delete[]正确释放内存
使用以下确切的输出格式:
Array size: [size]
Sum: [sum_of_all_numbers]
Maximum: [maximum_value]请记住,动态内存分配可以让你创建大小在运行时根据用户输入确定的数组。使用 new int[size] 分配数组,并使用数组表示法 array[index] 访问元素。使用完数组后,必须调用 delete[] array 释放已分配的内存,防止内存泄漏。数组存储在堆上,会一直存在,直到你明确释放它。
亲手试试
#include <iostream>
using namespace std;
int main() {
// 读取数组的大小
int size;
cin >> size;
// TODO: 在这里编写你的代码
// 1. 使用 new[] 动态分配数组
// 2. 读取整数并存入数组
// 3. 计算所有数字的总和
// 4. 找出最大值
// 5. 别忘了使用 delete[] 释放内存
// 输出结果(替换为实际的变量)
cout << "Array size: " << size << endl;
cout << "Sum: " << /* 总和变量 */ << endl;
cout << "Maximum: " << /* 最大值变量 */ << endl;
return 0;
}逻辑与流程中的所有课
自己练习: C++ 在线编译器