我是刚接触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; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 unity第一人称射击小游戏,有demo,在原脚本的基础上进行修改以达到要求
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line