问个很菜的问题~~

insiku 2004-07-28 06:52:51
主函数调用一个函数 传给函数一个变量, 在调用的函数中定义一个int a[10][传过来的变量] 为什么这样就不能用 a[10][传过来的变量] = { }; 初始了????

类似与下面这样

#include <iostream.h>

void kkkk(int);

void main()
{
int a = 10;
kkkk(a);
cin.get();
}

void kkkk(int j)
{
int a[10][j] = {};
}


用dev c++ 编译 提示 variable-sized object `a' may not be initialized
...全文
122 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
insiku 2004-07-28
  • 打赏
  • 举报
回复
汗~~~~还是老老实实的一个一个来好了`~
bidongliang_2000 2004-07-28
  • 打赏
  • 举报
回复
那可能要等到C+++出现了
insiku 2004-07-28
  • 打赏
  • 举报
回复
了解~~~那有没有别的 类似的方法 可以一次初始化 别跟我说要循环 一个一个来
pacman2000 2004-07-28
  • 打赏
  • 举报
回复
也就是说,程序都还没运行的时候,你能知道这个j是多少吗? 能就可以用来定义数组,不能就不行。
pacman2000 2004-07-28
  • 打赏
  • 举报
回复
数组大小必须在编译期确定啊。
lingjingqiu 2004-07-28
  • 打赏
  • 举报
回复
就是不行,不能用变量控制数组,也就是说数组的大小要在编译期确定
insiku 2004-07-28
  • 打赏
  • 举报
回复
这个应该不算是动态的数组吧
调用函数的时候 数值已经传过来了~~
郁闷~~~
bidongliang_2000 2004-07-28
  • 打赏
  • 举报
回复
c中是不允放动态声明数组的。
可以这么写
int *a[10],i;
for(i=0;i<10;i++)
a[i]=(int*)malloc(sizeof(int)*j);
最后别忘了释放
for(i=0;i<10;i++)
free(a[i]);
至于赋值,只能一个一个来了^_^

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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