|      1ritksm      2013-11-15 17:47:32 +08:00 C99标准引入的- -老早的事情了... | 
|  |      2lotem      2013-11-15 17:48:43 +08:00 c99 variable-length arrays | 
|  |      3txx      2013-11-15 17:52:15 +08:00 很早的事情了  就是编译的时候丢栈顶....不推荐的做法... | 
|  |      4xieranmaya OP @ritksm 啊,真是这样吗,尼马我上大学时都07年了老师也没告诉我可以这么写啊啊啊啊 | 
|  |      5txx      2013-11-15 17:53:36 +08:00 发现楼主是 大山中学的? | 
|  |      6xieranmaya OP | 
|  |      7xieranmaya OP @txx 不是我,是我妹子 | 
|  |      8skydiver      2013-11-15 18:02:10 +08:00 @xieranmaya malloc是堆上分配的空间吧。应该不一样 | 
|  |      9txx      2013-11-15 18:03:45 +08:00 不不不不不 它实际上还是使用的栈空间而不是堆空间...malloc 走的是堆空间.. 他编译的时候 就把这个变量丢到栈顶.. 然后根据n是多少 划掉相应的空间 如果n过大直接 stackoverflow 而且对于一般程序而言 栈空间远远小于堆空间的 所以不推荐这个做法 http://stackoverflow.com/questions/448844/variable-sized-arrays-in-c | 
|  |      10xieranmaya OP @txx 高手哇~~解惑了~~ | 
|  |      11xdeng      2013-11-15 18:10:27 +08:00 malloc 和 new  malloc 只管分配内存 | 
|  |      12xdeng      2013-11-15 18:11:48 +08:00 不小心 按回车了  new 不单只分配内存 如果是对象还会调用 构造函数 而 malloc一个对象 不会。。。同理 delect 和 free 也不一样。。。 | 
|  |      13xieranmaya OP @xdeng 嗯嗯,new 和 malloc 是有区别的~ | 
|  |      14Golevka      2013-11-15 18:53:46 +08:00 C99有VLA, C++14才把VLA正式纳入标准, 但是许多支持C++11的编译器都支持VLA作为自己的扩展特性. | 
|  |      15Ricepig      2013-11-16 01:20:08 +08:00 via iPhone lz大学还在用turbo c吗?哈哈 | 
|  |      16Ricepig      2013-11-16 01:21:04 +08:00 via iPhone 另外,小心stack overflow,这不是那个网站哦 | 
|  |      17treo      2013-11-16 17:39:49 +08:00 ms的vs至今不支持vla | 
|  |      18guchy2012      2013-11-16 20:29:19 +08:00 C++里面把n设置为常量就可以这么用,而且是编译器行为。 | 
|  |      19xieranmaya OP @Ricepig 当年上大学的时候用的是VC6.0.。。。 |