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