把这两个Error放在一起,主要是因为在写代码的时候发现,他们有公共的错误。
(一)Invalid Allocation Size
主要是因为new分配内存出了问题,从直观翻译来看,应该是内存分配长度无效。
检查一下程序里面开辟动态内存的地方,代表长度的变量是否具有正确的值:
可能有时候该变量未被初始化,此时很有可能就是一个随机的负值。
可能该长度的值需要从文件中读取,要仔细检查一下读取文件的时候,读的时候各个量的值是否对应正确。
(二)abort() has been called
该Error一般分两个方面————开辟内存长度无效(非法) 、 指针访问内存无效(非法)
第一个方面同上,
可能是在读文件的时候程序中各个量的值没有对应正确,导致程序连main函数都没进去就直接报了该错误;
可能是,你的程序占用的内存太多了,堆栈内存不够,溢出了。
第二个方面就是非法的指针访问,可能程序在运行时指针越界了,你没注意到。