闲来无事,看看Cyclone-QQ源代码
在函数里根据参数声明数组,十分不解。编写测试代码
#include <iostream>
#include <algorithm>
int main()
{
int n;
std::cin >> n;
char buf[n];
std::fill(buf, buf+n-1, '*');
buf[n-1] = '\0';
std::cout << buf << std::endl;
return 0;
}
在Ubuntu下gcc编译通过, 运行正常。
按道理,变量n的数值不定,那么编译buf不知道大小无法分配。
请高手指点
C++支持变长数组声明???
-
- 帖子: 14
- 注册时间: 2006-08-16 14:15
- lysting
- 帖子: 41
- 注册时间: 2006-07-13 11:43
- 来自: 深圳
- 联系:
特意叫别人在 vc6.0帮测试,如下:
--------------------Configuration: ttt - Win32 Debug--------------------
Compiling...
ttt.cpp
D:\Documents and Settings\Administrator\ttt.cpp(8) : error C2057: expected constant expression
D:\Documents and Settings\Administrator\ttt.cpp(8) : error C2466: cannot allocate an array of constant size 0
D:\Documents and Settings\Administrator\ttt.cpp(8) : error C2133: 'buf' : unknown size
Error executing cl.exe.
ttt.obj - 3 error(s), 0 warning(s)
自己看着办吧,呵呵
--------------------Configuration: ttt - Win32 Debug--------------------
Compiling...
ttt.cpp
D:\Documents and Settings\Administrator\ttt.cpp(8) : error C2057: expected constant expression
D:\Documents and Settings\Administrator\ttt.cpp(8) : error C2466: cannot allocate an array of constant size 0
D:\Documents and Settings\Administrator\ttt.cpp(8) : error C2133: 'buf' : unknown size
Error executing cl.exe.
ttt.obj - 3 error(s), 0 warning(s)
自己看着办吧,呵呵
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
- leal
- 帖子: 1119
- 注册时间: 2005-08-29 14:49
- 来自: 杭州
- 联系:
Re: C++支持变长数组声明???
用 g++ 编译试试duanlf 写了:闲来无事,看看Cyclone-QQ源代码
在函数里根据参数声明数组,十分不解。编写测试代码
#include <iostream>
#include <algorithm>
int main()
{
int n;
std::cin >> n;
char buf[n];
std::fill(buf, buf+n-1, '*');
buf[n-1] = '\0';
std::cout << buf << std::endl;
return 0;
}
在Ubuntu下gcc编译通过, 运行正常。
按道理,变量n的数值不定,那么编译buf不知道大小无法分配。
请高手指点
- fiftymetre
- 帖子: 37
- 注册时间: 2006-09-29 15:06