数组函数编译错误
① 数组元素定义过多引起编译错误,其他地方是没有问题的,有什么合理的解释呢
估计你对这个数字还没有概念,20多位的整数这是多大的数,按char占一个字节算,这个数换算成T也得有几百万T。现在普通用的电脑哪有几百万T的内存给你用。
另外就算有这也是会报错的,c++编译器整数常量默认是4位整型,很明显这20位整数已经远远超过2^32-1所能表示的数了,提示警告是肯定会有的。
当然如果以后真能造出这么大内存,这个规定估计也会改变,那就另说了。至少现在还是这样的。
② C变长数组编译错误,求解,是编译器问题还是代码问题
#include<stdio.h>
voidas(inta,intb,intc[2][3]);
intmain()
{
inta=2,b=3;
intc[2][3]={{11,22,34},{66,46,36}};
as(a,b,c);
return0;
}
voidas(inta,intb,intc[2][3])
{
//***省略
}
你声明的时候,数组都没有大小,而且也没开空间,当然会编译报错了。上面的才是正确的。
像你那种写的风格,是C99的标准,只要编译器用的不是C99标准的都会编译不过。而且不建议那么些。
③ c语言字符串数组过长编译失败
打开Visual C++ 6.0,新建一个C++ source file源文件
④ C语言数组在使用中常见的几种错误
在计算机程序中,通常可能发生以下三种类型的错误:
(1)语法错误:这是指程序中含有不符合语法规定的语句,例如关键字或符号书写错误(将printf写成print、将数组元素引用写成a(2)等)、使用了未定义的变量、括号不配对等。含有语法错误的程序是不能通过编译的,因此程序将不能运行。
(2)逻辑错误:这是指程序中没有语法错误,可以通过编译、连接生成可执行程序,但程序运行的结果与预期不相符的错误。例如整型变量的取值超出了有效的取值范围、在scanf函数遗漏了取地址运算符&、数组元素引用中下标越界、在应当使用复合语句时没有使用复合语句等。由于含有逻辑错误的程序仍然可以运行,因此这是一种较难发现、较难调试的程序错误,在程序设计、调试中应予特别注意。
(3)系统错误:这是指程序没有语法错误和逻辑错误,但程序的正常运行依赖于某些外部条件的存在,如果这些外部条件缺失,则程序将不能运行。例如折半查找法是在已经排序的数组上进行的,但实际的数据并没有进行排序、程序中需要打开一个已经存在的文件,但这个文件由于其他原因丢失等。
⑤ 数组问题,编译报错,指出类型不匹配,“发现'无符号字符'预期'无符号字符的指针”~该如何解决
几个问题
1. 字符串常量应该是[4],因为后面还有一个结尾符'\0'
2. 这个常量数组可以定义到代码区 code
uchar code weekend[][4]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
或至少定义为常数
const uchar weekend[][4]={"MON","TUE","WED","THU","FRI","SAT","SUN"};
3. 按全局数组使用,没必要作为参数传递,除非你另一张显示星期的表格
void write_week(uchar week)
4. 没看到你的write_dat函数,但传入的实参应该是 uchar *,而不是uchar,所以调用是
write_dat(weekend[week-1]);
⑥ ACM一道题我把数组放到函数外就编译错误,函数内就通过什么意思没看懂。。。
因为放在外面是全局变量,某些ACM网站评测系统不允许使用全局变量
⑦ C语言中的数组编译为啥通不过
从标准语法看,这条有语法错误。
int s[10] ;
就可以了。
但是不同的编译器可能不同的表现,作为程序员,要禁止这种大括号内没有元素列表的情形。