我是刚接触C++,碰到动态内存分配的一个题,第一个是要求,第二个是我自己写了一半写不下去的,麻烦看一下,能给个完整代码,要是能有详细一点的注释就太感谢了
C++初学者,关于动态内存分配的问题
我是刚接触C++,碰到动态内存分配的一个题,第一个是要求,第二个是我自己写了一半写不下去的,麻烦看一下,能给个完整代码,要是能有详细一点的注释就太感谢了
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- 不停感叹的老林_<C 语言编程核心突破> 2022-03-27 16:52关注
需要二维动态数组解决,用户交互自己做吧。
#include <iostream> int main() { int cntClass = 0; //班级数量 std::cin >> cntClass; if (cntClass <= 0) //班级数量小于零,退出 { return 0; } int **scoresPtr = new int *[cntClass](); //建立二维数组用于存放成绩 int *peopleCnt = new int[cntClass](); //建立数组,存放每个班级人数 for (int cnt = 0; cnt != cntClass; ++cnt) { int peopleNum = 0; //初始化班级人数 std::cin >> peopleNum; if (peopleNum <= 0) //人数少于0,清理内存,退出 { for (int cnt = 0; cnt != cntClass; ++cnt) { delete[] scoresPtr[cnt]; } delete[] scoresPtr; delete[] peopleCnt; return 0; } peopleCnt[cnt] = peopleNum; //设定某班的人数 scoresPtr[cnt] = new int[peopleNum]; //初始化某班的成绩数组 for (int i = 0; i != peopleNum; ++i) { std::cin >> scoresPtr[cnt][i]; } } int x = 0; int y = 0; std::cin >> x >> y; //若输入的x,y不在合理区间,退出 if ((x >= 0 && x < cntClass) && (y >= 0 && y < peopleCnt[x])) { std::cout << scoresPtr[x][y] << std::endl; } //清理内存 for (int cnt = 0; cnt != cntClass; ++cnt) { delete[] scoresPtr[cnt]; } delete[] scoresPtr; delete[] peopleCnt; return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来
- ¥15 用stata实现聚类的代码
- ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
- ¥20 docker里部署springboot项目,访问不到扬声器
- ¥15 netty整合springboot之后自动重连失效