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