报错总结

先占个坑,平时遇到的编译器怎么报错了就在这篇下面写一写了。

调试是一项必备技能!!!

C Visual Studio

1,
0xC0000005: 写入位置 0xCCCCCCD8 时发生访问冲突

分配内存出现了问题。去调试的时候可以明显看见分配好内存的和没分配好的地址是有区别的。
我自己定义了一个结构体数组,但是不知道怎么给他分配内存,换了一种写法把结构体元素一个个分配空间这条编译就过了。
for (int i = 0; i < N; i++)
{
v[i] = (Vertex)malloc(sizeof(V));
x[i] = (Vertex)malloc(sizeof(V)*M);
}

2.无法进行写入
看一下是不是上一次的运行结果没有关!!!把它关了试试,还不行就关了运行结果之后重新打开Visual Studio就没什么问题了。

3. scanf_s()
我的编译器是写scanf()就不给我过,所以我的程序里面全部写的scanf_s(),那这两个函数的区别是什么呢?
如下,主要是scanf_s()能够让程序更安全。

scanf()不会检查输入边界,可能造成数据溢出,scanf_s()会进行边界检查。
如name[5],
scanf("%s",name),如果输入abcdefgh,则会使得fgh溢出进入其他地方,造成程序错误,
容易被黑客利用;而scanf_s("%s",name),则会只会接收前5个输入,其后的无效,避免了程序的漏洞。

4.运行一个简单的visual studio上的程序发现无法运行到指定位置。
原因是我重命名了我的源文件,但是项目文件还是一个ConsoleApplication 这种类型的名字,在调试的时候就会发现往下调的时候回直接跳到一个ConsoleApplication的空文件里面去。就是名字不一致造成的。

Java Eclipse
1.输出结果是上一次的运行结果,或者运行父类的结果

先检查一下有没有最基本的错误,就是main的那里 public static void main(String[] args)有没有错,要是没有的话检查一下输出结果是不是父类的里面的toString的结果,如果是的话很可能就是子类在输出的时候调用了父类的toString输出了父类的字符串。需要自己构造一个toString。看了一下以前的代码,发现在println的时候一般都是用get方法得到的结果或者是把一个对象toSting()。

  1. CloneNotSupportedException
    如果类没有覆盖clone()方法就用super.clone()调用的话就会造成一个CloneNotSupportedException的错误。因为在java.lang.Object里他是protected的。
    我改了一个写法用前面学的异常处理搞了一下可以运行
    try {
    		return super.clone();
    		}
    		catch(CloneNotSupportedException e) {
    
    			System.out.println("Cloning not allowed.");
    
    			return this;
    		}

3.java.lang.IllegalArgumentException: input == null!
我的完整的报错是这样的:

Exception in thread “main” java.lang.IllegalArgumentException: input == null!
at javax.imageio.ImageIO.read(ImageIO.java:1388)
at com.zengmeng.game.GameUtil.getImage(GameUtil.java:21)
at com.zengmeng.game.MyGameFrame.load(MyGameFrame.java:38)
at com.zengmeng.game.MyGameFrame.main(MyGameFrame.java:202)

结果是把存图片的文件夹imagines从src下面剪切到了bin下面就能正常运行了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值