c语言 二维数组 但不知道其中的行和列

introws;intcols;inttdary[rows][cols];for(i=0;i<rows;i++){for(j=0;j<cols;j++){tdary[i]... int rows;
int cols;
int tdary[rows][cols];
for (i=0;i<rows;i++){
for(j=0;j<cols;j++){
tdary[i][j]=i+j;
}
}
我想创造一个二维数组 可是我的行和列都是未知数; 所以我只能这么写 可是这样写是不是错误的啊? 有什么解决办法吗?
展开
 我来答
nari_lizw
2014-10-16 · TA获得超过7390个赞
知道大有可为答主
回答量:2075
采纳率:70%
帮助的人:834万
展开全部
是的这样是错误的,因为c不支持动态数组。
要么定义一个足够大的数组,要么用链表结构。
追问
求具体点
跪求
追答
具体点就说来话长了,没看过教材吗?例如谭浩强的《C语言程序设计》。
单链表结构,用结构体
struct tdary
{
int num1;
int num2;
struct tdary *next;
}
struct tdary *head,*p1,*p2;
p1=(struct tdary *)malloc(sizeof(int));
scanf("%d",&p1->num1);
scanf("%d",&p1->num2);
p1->next=0;
head=p1;
p1=(struct tdary *)malloc(sizeof(int));
scanf("%d",&p1->num1);
scanf("%d",&p1->num2);
p1->next=0;
p2=p1;
head->next=p2;
...(一般用循环语句搞定)
p1=head;
while(p1!=0)
{
printf(.....);
p1=p1->next;
}
大概这个意思。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Realbfs
2014-10-16 · TA获得超过330个赞
知道小有建树答主
回答量:281
采纳率:0%
帮助的人:235万
展开全部
可以动态分配内存。
tdary = (int**)malloc(rows*cols*sizeof(int))。
然后tdary[0]=(int*)tdary, tdary[1]=(int*)tdary+cols,依次类推。这样可以把上面分配的空间当成数组来用。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式