Dev c++ 数组

#include <stdio.h>
#include <conio.h>

int bb(int a);

int main()
{
int a = 10;
int b[a];

b[8] = 123;

bb(100);

printf("%d", b[8]);
getch();
}

int bb(int a)
{
int c[a];
c[a - 1] = 456;
printf("\n%d\n", c[a - 1]);
}

这样的数组定义居然可以运行
谁能解释一下,谢谢
c++标准里这样定义数组是不是不行?

第1个回答  2009-08-03
G++偷懒啦
第2个回答  2009-08-03
应该问编译器作者!不建议这么干,属于不良习惯。
第3个回答  2009-08-03
编译器问题~使用了非标准的C++编译方法

Dev c++ 数组
貌似c[]和b[]差不多,不明白你写出来做什么 原则上来说,数组的长度必须要是常量,你这样定义就是错的,估计VC不能过,我没用过 但是可以用动态开数组 不过DEV的工程师是参与了C++语法修订工作的,在目前来说是比较权威的,毕竟了解自己的编译器也是一项技术嘛,呵呵,我们老师曾经这样说的,我们参...

数组在DEV C++处怎么会可以这样定义?
dev c++采用的是g++编译器。g++有一个极其强大的功能就是可以用变量声明数组大小。

dev c++的数组问题!
a[100]指向的是a之后100个位置的地方。如果这个地方,属于程序的寻址空间,运行时就不会发生错误,如果超出,应该会发生地址非法访问的错误。另外,如果有其他操作修改或者访问了a[100]这个地方的内容,会发生不可预知的问题,因为你错误\/意外的修改了这个地方的内容。

Dev-C++的一个小问题,有关数组的
int main(){ int n,i,j;int a[10]={1,2,3,4,5,6,7,8,9,10};scanf("%d",&j);\/\/前面没有j=?scanf的返回值是正确输入的个数,所以如果你要加上j=,输入正确情况下,j=1 printf("%d",a[j]);getchar();getchar();return 0;} ...

用dev c++编写c语言程序定义一个100000的结构体数组总是数据溢出_百度...
那是必然的,因为C++每个函数的栈空间一般只有2MB。用动态分配。

dev c++输出二维数组时全部输出成了一行?
你的程序我帮你改好了,是换行符的位置不对 完整的程序如下(改动的地方见注释)include<stdio.h> int main(){ int a[3][4]={{6},{8},{3}};int i,j;for(i=0;i<=2;i++){ for(j=0;j<=3;j++){ printf("%5d",a[i][j]);\/\/这里去掉换行符 } printf("\\n");\/\/这里加...

Dev c++这种情况是什么原因??
1.确认数组定义的大小是否足够;2.使用宽字符集定义数组,同时修改输入输出的格式控制

关于c++中创建数组
书上的意思是你建立一个数组后要对其进行初始化!!!我也是dev 在dev里。因为你在主函数里没有对其进行处理。如果有的话,就会报错了。不能对空数组进行处理。这样定义为什么能通过呢?因为你没有对其数据处理。所以他只是空在那里,所以才没有问题。直接结束。因为你直接对a赋值了,所以相当于一个常...

用devc++时,提取一个txt中的数据赋值给一个数组,为什么2000个数据只...
1.如果你是用fread之类的函数读取的话,你定义的是不是char数组,如果不是的话很可能读取字符时系统会把几个字符放到一个中,这样看着好像就变少了。2.如果你的数组定义没有问题,你是怎么统计提取到的数据数量的?如果你采用测量字符长度的方法的话,当提取到的数据中有空格或回车时就停止计数了。3...

求助:C++对象数组初始化问题 (Dev C++不通过,VC6.0却过了)
我手边没有devc++,不敢说给出的答案一定正确 我的建议是,拷贝构造函数的参数写成const test & 试试看 (如果可以的话,请你以后也遵守这个写法,这是拷贝构造函数的规范)

相似回答
大家正在搜