永发信息网

我要定义一个二维数组,但是二维数组的下标只有第一个下标可以确定,这该怎么办呢?

答案:2  悬赏:80  手机版
解决时间 2021-12-04 08:29
我要定义一个二维数组,但是二维数组的下标只有第一个下标可以确定,这该怎么办呢?
最佳答案
第一个下标是行数,所以你的二维数组 行数 定了,列数未定。这样只能用指针数组:
#include
main(){
int *a[5]; // 假定5行,所以声明为5个指针
int i,j,m;
printf("input m\n");
scanf("%d",&m); //输入列数
for (i=0;i<5;i++) a[i]=(int *) malloc(sizeof(int)*m); //动态分配
// 这里可以使用 2 维数组 a[5][m] 了。
for (i=0;i<5;i++) for (j=0;jfor (i=0;i<5;i++){
for (j=0;jprintf("\n");
}
return 0;
}追问谢谢你的回答,解决了我的一些疑惑,我想用单片机做一个音乐盒,只定义一个二维数组,包含四首音乐的数据,数组第一个下标指定的是第几首曲子,第二个下标指定的是每首曲子中的乐曲数据,由于每首曲子的数据个数不同,所以第二个下标不能确定,你可以给我些建议吗?万分感谢!还有一个问题,如果定义动态数组的话,那会不会很占单片机内存呢?有四首曲子,89c5系列单片机能不能胜任?追答你可以把文件放在存储设备上,需要播放时再读入play. 读一段播放一段。
全部回答
使用指针数组 int *arr[10]; // 每一个元素代表一行,一共10行
或者使用数组指针 int (*a)[10]; // 每一个元素代表一列,一共10列
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
民国10年的瓷器底款为什么写宏宪年制
我想购买一些PET保护膜做下零售,但是不知道
我是女生,为什么我的头发很粗有很硬
STV9302A供电电压多少伏
比亚迪473qe发动机进排气门弹簧高低不一样
包税保税直邮用的京东支付怎样下载
封阳台窗户发现有罗普斯金有很多型号,想问下
价位在八百左右的手机,哪个牌子的好啊,推荐
张碧晨 当爱来敲门mp3分享,谢谢各位度友
怎样把一很短件事写具体
黄山的连心锁在哪?
王默的父亲是谁啊?
iphone 3gs 4.1能不能装八门神器
点雀斑后显眼的雀斑多数还在,只是稍淡了点。
高层楼房住宅主卧窗和阳台窗能看见远处山,在
推荐资讯
2018年06月14日19点35分八字怎么算
一个棱长6厘米的正方体容器装满水,然后倒进
10万到20万之间的轿车有哪些
单选题关于遗传病的说法正确的是A.人类的遗传
中房·青蓝国际怎么样?好不好?值不值得买?
疯狂猜成语好多人在一宅子门前是什么成语
奥迪A1保养灯归零
小狗的说明文,外貌,吃饭的时候……写出来350
短篇感人的儿童文学书籍
纤婷美容护肤中心地址在什么地方,想过去办事
蚝油生菜的做法视频如何
英语 假设你们幼儿园在暑假期间要招聘临时辅
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?