看看这里哪错

yuren5340468 2003-09-14 09:05:47
#include<iostream.h>
#include<iomanip.h>
int main()
{
int i,j,k,m;
int a[i][j],a[k][m];
cin>>i;
cin>>j;
cin>>k;
cin>>m;





}
...全文
22 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wx2qll 2003-09-15
  • 打赏
  • 举报
回复
我想yuren5340468 (落英风) 这个问题的初衷是为了充分利用资源,避免不必要的浪费,同时又为可能的大需求做好准备。这个问题曾经让我非常头疼。因为为了优化时候的内存,我们不可能给所有的数组都分配巨大的空间。

目前,比较普遍的方法是
1.利用统计和概率,估算出合理的数组数值范围,进而设定一个静态的数组大小;这其实是没有办法的办法
2.利用动态申请&释放内存空间 和 指针 , 实现数组的动态增长。其实这就是线性表和链表的原理。推荐使用类来封装。

这需要一定的面向对象编程思想。

如果需要,我可以帮你写一段示例代码。
justju 2003-09-15
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<iomanip.h>
int main()
{
int i,j,k,m;
cin>>i;
cin>>j;
cin>>k;
cin>>m;
int a[i][j],a[k][m];
}
l1ul1u 2003-09-15
  • 打赏
  • 举报
回复
int a[i][j],a[k][m];错了
不能这样定义数组
应该给出具体的数字
或动态分配
goodluckyxl 2003-09-15
  • 打赏
  • 举报
回复
int i,j,k,m;
int a[i][j],a[k][m];

不允许这样建立动态数组

如:playboyxp(随影) ( )
TianGuangZao 2003-09-15
  • 打赏
  • 举报
回复
ISO C99 中允许 Arrays of Variable Length,如:

FILE *
concat_fopen (char *s1, char *s2, char *mode)
{
char str[strlen (s1) + strlen (s2) + 1];
strcpy (str, s1);
strcat (str, s2);
return fopen (str, mode);
}
langzi8818 2003-09-14
  • 打赏
  • 举报
回复
数组的长度只能是确定的,你的非确定的怎么可以!
jp311 2003-09-14
  • 打赏
  • 举报
回复
数组的长度只能是const int
要动态建立要不用std::vector,要不用楼上的方法
playboyxp 2003-09-14
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<iomanip.h>
int main()
{
int i,j,k,m,**p,**q,n;
cin>>i;
cin>>j;
cin>>k;
cin>>m;
p=new int *p[i];
for(n=0;n<i;n++)
*p[n]=new int[j];
q=new *p[k];
for(n=0;n<k;n++)
*q[n]=new int[m];
}






}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧