我正在實(shí)現(xiàn)分而治之多項(xiàng)式算法,因此可以將其對(duì)照OpenCL實(shí)現(xiàn)進(jìn)行基準(zhǔn)測(cè)試,但無(wú)法開(kāi)始malloc工作。當(dāng)我運(yùn)行程序時(shí),它會(huì)分配一堆東西,檢查一些東西,然后將其發(fā)送size/2給算法。然后,當(dāng)我malloc再次點(diǎn)擊該行時(shí),它會(huì)吐出以下內(nèi)容:malloc.c:3096:sYSMALLOc:聲明`(old_top ==((((mbinptr)(((char *)&((av)-> bins [(((1)-1)* 2])))-__builtin_offsetof(struct malloc_chunk,fd))))&& old_size == 0)|| (((unsigned long)(old_size)> =(unsigned long)((((((__ builtin_offsetof(struct malloc_chunk,fd_nextsize))+((2 *(sizeof(size_t)))-1))&?((2 *(sizeof (size_t)))-1)))&&(((old_top)-> size&0x1)&&((unsigned long)old_end&pagemask)== 0)'失敗。中止有問(wèn)題的行是:int *mult(int size, int *a, int *b) { int *out,i, j, *tmp1, *tmp2, *tmp3, *tmpa1, *tmpa2, *tmpb1, *tmpb2,d, *res1, *res2; fprintf(stdout, "size: %d\n", size); out = (int *)malloc(sizeof(int) * size * 2);}我用來(lái)檢查大小fprintf,它是一個(gè)正整數(shù)(通常為50)。我也嘗試malloc用一個(gè)普通號(hào)碼打電話,但仍然出現(xiàn)錯(cuò)誤。我只是對(duì)正在發(fā)生的事情感到迷惑,到目前為止,我發(fā)現(xiàn)Google都沒(méi)有任何幫助。有什么想法嗎?我試圖弄清楚如何編譯更新的GCC以防出現(xiàn)編譯器錯(cuò)誤,但我真的對(duì)此表示懷疑。
為什么會(huì)出現(xiàn)C malloc斷言失?。?/h1>
喵喵時(shí)光機(jī)
2019-11-29 14:55:22
喵喵時(shí)光機(jī)
2019-11-29 14:55:22