malloc 失敗的可能原因是前面存在內(nèi)存超界訪問(wèn)。比如說(shuō)前面有double *a=(double*)malloc(10*sizeof(double)); a[10]=10;那么再用malloc時(shí)就可能會(huì)出問(wèn)題。
在我的代碼中a[11]=11;之后使用malloc仍不會(huì)出問(wèn)題,但是a[20]=20;再使用malloc 就出問(wèn)題了。
解決此類問(wèn)題方法之一是在程序調(diào)試階段判斷是否存在訪問(wèn)超界的情況,在賦值或者訪問(wèn)數(shù)組前先判斷下標(biāo)的大小是否超出了數(shù)組分配的實(shí)際大小。