0
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;
}
根據調試器,錯誤來自空閒(temp-> data)部分。然而。第二次通過函數時,我只會遇到錯誤。任何想法發生在這裏。在數據結構中釋放陣列時出錯
在Visual Studio上得到堆損壞錯誤。
我可能是錯的,因爲我沒有看到整個代碼和數據結構的實現,所以如果你能分享代碼,我們可以看到完全一樣的問題。 –