请教下啊这个是C语言的语法限制,还是VC 6。0的限制啊

时间:2008-06-20 09:49:08   来源:论坛整理  作者:  编辑:chinaitzhe
C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



就是用变量定义数组。

[code=C/C  ]

#include<stdio.h>



main()

{

    void build(int i);

    int i;

    i=7;

    build(i);

}

void build(int i)

{

    int a[i][i];

}

编译过不去
#include <stdio.h>

C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



main()

{

    void build(int i);

    int i;

    i=7;

    build(i);

}

void build(int i)

{

    int j=i;

    int a[j][j];

}

也过不去[/code]


这样也不行,
我写个关于图的程序,我希望让用户自己输入顶点的数目n,然后根据这个数目创建邻接矩阵,a[n][n],我觉得这样设计才有通用性啊,而且不浪费空间。

很多这类代码程序都是开辟一个很大的数字MAX a[MAX][MAX],要不就是设置一个不是比N大很多的MAX,这样要是超过MAX不是又要改程序?很没通用性啊。


我的电脑,只有win-lcc32,和VC 6.0 win-lcc最近用不了,从装也用不了,所以我不知道这个是VC 的限制还是C的限制啊

网友回复:不可以,请用new .
网友回复:对于你说的都是。这是C89限制的。

要是想这样,改用支持C99的编译器
网友回复:c语言的限制,c99之后才可以吧。vc6使用的c版本还不行。
网友回复:数组定义时不答应是变量
网友回复:好好看看数组
谢谢
网友回复:
C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/



void build(int i);



int main()

{   

    int i;

    i=7;

    build(i);

}



void build(int i)

{

    int a[i][i];

}


这样
网友回复:
引用 4 楼 frank_323 的回复:
数组定义时不答应是变量

网友回复:数组实质还是以指针形式访问
直接声明一个int ** 变量
网友回复:[Quote=引用楼主 q198816 的帖子:]
C/C code就是用变量定义数组。
C/C code





Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/





#include<stdio.h>main()

{voidbuild(inti);inti;

    i=7;

    build(i);

}voidbuild(inti)

{inta[i][i];

}编译过不去

#include <stdio.h>



C/C   codemain()

{voidbuild(inti);inti;

    i=7;

    build(i);

}voidbuild(inti)

{intj=i;inta[j][j];

}也过不去




这样也不行,
我写个关于图的程序,我希望让用户自己输入顶点的数目n,然后根据这个数目创建邻接矩阵,…
[/Quote]

VC6的编译器很老,建议使用更新的编译器,当然假如希望使用对标准实现比较完全的,建议用GCC
网友回复:假如,从c 的语法看,是c 的限制了,声明数组的大小不答应用变量的.
假如,从c的语法看,从c99以后,楼主的语法就没有问题了,所以你要找能够支持c99的编译器,而C99以前都的编译器都不能支持
网友回复:还是别这样用了,把数组的基本概念好好看一看
网友回复:C99标准支持lz的写法,不过为了通用性,还是用malloc来申请内存吧。
网友回复:定义数组大小的时候不答应是变量,而你的int a[j][j]中的j是变量
网友回复:不支持动态数组,数组的大小在编译的时候就需要确定
关键字:请教,语言,语法,限制,VC,
上一篇:事关魔兽啊

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面