Status bit_flags_set_flag(BIT_FLAGS hBit_flags, int flag_position) {
Bit_Flags* temp = (Bit_Flags*)hBit_flags;
int* nums;
int i;
int old_size;
if (temp->size < flag_position) {
nums = malloc(sizeof(int)*flag_position+1);
if (nums == NULL) {
return FAILURE;
}
for (i = 0; i < temp->size; i++) {
nums[i] = temp->data[i];
}
free(temp->data);
temp->data = nums;
old_size = temp->size;
temp->size = flag_position + 1;
for (i = old_size; i < temp->size; i++) {
temp->data[i] = 0;
}
}
temp->data[flag_position/32] |= 1 << flag_position % 32;
return SUCCESS;
}
entsprechend dem Debugger ist der Fehler von der freien (temp-> Daten) Teil. jedoch. Ich laufe nur beim zweiten Mal, wenn ich die Funktion durchführe, auf den Fehler. irgendwelche Ideen, was hier passiert.Fehler beim Freigeben eines Arrays innerhalb einer Datenstruktur
bekomme ich einen Haufen Korruption Fehler auf Visual Studio.
ich könnte falsch liegen, weil ich nicht den ganzen Code und die Implementierung von Datenstrukturen gesehen habe, also wenn Sie den Code teilen können wir sehen, was das Problem genau ist. –