Tôi đang làm việc để sửa đổi một chương trình C++ tương đối lớn, không may là có ai đó trước tôi sử dụng cú pháp C hay C++ hay không (đây là bộ phận kỹ thuật điện tại một trường đại học, và EEs luôn bị cám dỗ sử dụng C) cho mọi thứ, và thật không may trong trường hợp này, mọi người thực sự có thể thoát khỏi nó).Đối tượng C++ được tạo mới, bị hủy với miễn phí(); Tệ như thế nào?
Tuy nhiên, nếu ai đó tạo ra một đối tượng:
Packet* thePacket = new Packet();
Liệu nó quan trọng cho dù là bị phá hủy với delete thePacket;
hoặc free(thePacket);
?
Tôi nhận thấy rằng xóa cuộc gọi hủy trong khi miễn phí() thì không, nhưng Packet không có hàm hủy. Tôi đang có một thời gian khủng khiếp bị mắc kẹt trong một đầm lầy quản lý bộ nhớ ở đây và tôi nghĩ đây có thể là một trong nhiều vấn đề.
Gói có một trình phá hủy, ngay cả khi bạn không thể nhìn thấy nó. Nó ... gah, trả lời dưới đây. – slezica
Câu trả lời đúng là bạn không nên xóa mọi thứ. Bọc chúng lại. – GManNickG