私は関数内の構造体ポインタの配列のために動的にメモリを割り当てようとしています。それは後に、このエラーで3反復が、クラッシュするまで動作します、いくつかの反復後のReallocの破損C
Intersection** alreadyUse = malloc(sizeof(Intersection*));
if(alreadyUse == NULL) {
exit(1);
}
int size = 1;
alreadyUse[0] = inter; // Pointer of an Intersection
// Some Code
checkFunction(alreadyUse, &size, interLeft);
と私が言ったように、これは
bool checkFunction(Intersection** alreadyUse, int* size, Intersection* inter) {
for(int i = 0; i < *size; i++) {
if(alreadyUse[i] == inter) {
return true;
}
}
*size = *size +1;
Intersection** tmp = realloc(alreadyUse, sizeof(Intersection*) * *size);
if(tmp == NULL){
exit(1);
}
else {
alreadyUse = tmp;
}
alreadyUse[*size-1] = inter;
return false;
}
私の関数である。ここでは
double free or corruption (fasttop): ...
は私の構造体ポインタ配列の宣言であります1、2、3で動作し、エラーが発生します。
誰かがそれがなぜ機能し、突然クラッシュするのか考えているのですか?
ありがとうございます。
交差型は分かりません –