tôi đã phát hiện ra mới/xóa lỗi không phù hợp cổ điển trong codebase của chúng tôi như sau:Lỗi nghiêm trọng/không phù hợp của nhà điều hành mới là bao nhiêu?
char *foo = new char[10];
// do something
delete foo; // instead of delete[] foo;
Chỉ cần như thế nào nghiêm trọng là điều này? Nó có gây ra rò rỉ bộ nhớ hay lỗi không? Hậu quả là gì. Chúng tôi có một số vấn đề về bộ nhớ, nhưng điều này dường như không đủ nghiêm trọng để giải thích tất cả các triệu chứng của chúng tôi (heap tham nhũng, v.v ..)
CHỈNH SỬA: thêm câu hỏi cho rõ ràng
Có miễn phí thành viên đầu tiên của mảng không? hoặc
Hệ thống có làm mất hệ thống không? hoặc
Bộ nhớ bị hỏng là một số cách?
Cảm ơn câu trả lời nhanh. Vì vậy, thực sự không xác định? Như trong, không ai có thể nói điều gì có thể xảy ra? Nếu vậy, nó có thể giải thích những quan sát của chúng tôi. –
@AndrewS. Thực sự không xác định. Tôi nhớ nó "làm việc" trong Visual Studio chẳng hạn. – cnicutar
Không xác định - tức là phụ thuộc vào trình biên dịch/HĐH. –