数组的大小可以动态定义??

lllcccppp 2011-02-28 12:49:35
之前了解到数组的大小是不能够动态定义的,只能用new或者malloc来定义一个大小未知的数组。
可以各位大虾看看,下面我的这个代码的数组大小怎么可以动态定义呢?为什么没有出错呢?

#include <stdio.h>
void setNum(int *p,int a);

int main()
{
int dim;
int number;
scanf("%d",&number);
setNum(&dim,number);
int num[dim];
printf("%d",sizeof(num)/sizeof(num[0]));
while(1);
}

void setNum(int *p,int a)
{
*p = a;
}
...全文
325 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wizard_tiger 2011-03-01
  • 打赏
  • 举报
回复
这个没报错?
C89这个肯定不行。
bdmh 2011-02-28
  • 打赏
  • 举报
回复
不支持,可以使用realloc重新分配
hzy694358 2011-02-28
  • 打赏
  • 举报
回复
C99不清楚,
C89不可以
不过现在的编译器有哪些支持C99?
……
liutengfeigo 2011-02-28
  • 打赏
  • 举报
回复
他们说C99可以.
Johnxme126 2011-02-28
  • 打赏
  • 举报
回复
你确定没出错?
昵称很不好取 2011-02-28
  • 打赏
  • 举报
回复
C99支持动态数组,C89不支持
hzy694358 2011-02-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 zhishiheng 的回复:]

亲测,vc6.0不行!
[/Quote]
这个还用测?10几年前的东东了……
zhishiheng 2011-02-28
  • 打赏
  • 举报
回复
亲测,vc6.0不行!
gladstonejay 2011-02-28
  • 打赏
  • 举报
回复
GCC无压力。。
lllcccppp 2011-02-28
  • 打赏
  • 举报
回复
VC 6.0不行。
masmaster 2011-02-28
  • 打赏
  • 举报
回复
我试过了, gcc+c99是可以的
proghua 2011-02-28
  • 打赏
  • 举报
回复
C99可以,
我的GCC可以,但VC不可以
lllcccppp 2011-02-28
  • 打赏
  • 举报
回复
Dev C++是可以的。

69,382

社区成员

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

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