Böl ve fethet polinom algoritması uyguluyorum, böylece onu bir OpenCL uygulamasıyla karşılaştırabiliyorum, ancak malloc
işe koyamıyorum. Programı çalıştırdığımda, bir sürü şey ayırıyor, bazı şeyleri kontrol ediyor size/2
ve ardından algoritmaya gönderiyor . Sonra malloc
tekrar çizgiye bastığımda şunu söylüyor:
malloc.c:3096: sYSMALLOc: Assertion `(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)' failed.
Aborted
Söz konusu satır şudur:
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);
}
Boyutu a ile kontrol ettim fprintf
ve pozitif bir tamsayı (bu noktada genellikle 50). malloc
Düz bir numara ile de aramayı denedim ve hala hatayı alıyorum. Sadece neler olup bittiğine şaşırdım ve şu ana kadar Google'dan bulduğum hiçbir şey yardımcı olmadı.
Neler olduğu hakkında bir fikrin var mı? Bir derleyici hatası olması durumunda daha yeni bir GCC'yi nasıl derleyeceğimi anlamaya çalışıyorum, ama gerçekten şüpheliyim.