Chủ đề: delete cả mảng tỉnh ????
-
16-06-2014, 09:52 AM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
delete cả mảng tỉnh ????
chào các anh chị , hôm nay em có một bài tập về class , em khai báo thuộc tính tên cụ thể là char ten[60] ;
đến chỗ hàm hủy em viết delete[] ten ; không bị sao , anh chị nào giải thích cho em với . Em xin cảm ơnView more random threads:
- Lỗi lập trình đồ họa trong C trên win xp ?
- Vấn đề các thuật toán sắp xếp
- Bác nào xem hộ em cái điều kiện dừng trong chương trình nhập với, chương trình cứ chạy hoài ko dừng à.
- tìm chữ từ 1 ma trận chữ cái
- nhập mảng, sắp xếp phần tử âm tăng dần,dương giảm dần
- Xin ý tưởng: Nhập số nguyên dương n gồm k chữ số, sắp xếp các chữ số của n theo thứ tự tăng dần.
- Giúp mình câu lệnh gọi hàm trim bài của minh gần xog rồi ai có góp ý kkkk?
- Cần giúp về môn Cấu trúc dữ liệu --Gấp lắm!!
- [IDE cho thiết kế GUI C++] Tham khảo ý kiến các già làng,trưởng bản...
- Windows 7 làm sau để học C !
-
16-06-2014, 01:14 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Bạn dùng Compiler nảo vậy?
-
16-06-2014, 03:29 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
mình dùng dev-c++ bạn
-
16-06-2014, 04:36 PM #4
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Tham số truyền cho delete[] là một con trỏ được cấp phát trước đó bằng new operator, vì thế bạn không thể tùy tiện làm như trên được. Heap và stack khác hẳn nhau, 60 characters của mảng ten[] được đưa lên stack memory; cơ chế làm việc của delete[] là delete con trỏ được new trên heap memory (nếu con trỏ trỏ đến null thì delete[] operator không làm gì cả), vậy việc delete không đúng tham số, không đúng memory area là không thể xảy ra. Trình dịch của bạn không phát hiện ra điều này, nhưng chương trình của bạn bị corrupt nghiêm trọng. Hơn thế, chương trình chạy được không có nghĩa là chương trình đúng, run perfectly.
-
19-06-2014, 04:58 PM #5
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Vậy trong class chúng ta nên dùng cấp phát động ư
-
19-06-2014, 05:12 PM #6
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
bỏ cái dòng delete [] đó đi
Mã:class A{public: A() { *hoten = '\0'; } ~A() {}private: char hoten[60];}; class B{public: B() : hoten(new char[60]) { *hoten = '\0'; } ~B() { delete [] hoten; }private: char* hoten;}; #include <string> class C{public: C() {} ~C() {}private: std::string hoten;};
-
23-06-2014, 05:32 PM #7
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình nhớ là khi yêu cầu cấp phát mảng tĩnh (cấp phát trên stack) thì khi ra khỏi scope khai báo thì đối tượng mảng tĩnh đó tự động giải phóng, nên trong hàm hủy bạn không cần dùng toán tử delete đâu.
-
24-06-2014, 03:51 PM #8
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Mình chỉ dùng thử không ngờ lại được [IMG]images/smilies/17.gif[/IMG]
xã hội vững mạnh, nhu cầu mặc đẹp của con người ngày càng cao. ngành công nghiệp thời trang cũng đang vững mạnh chóng vánh. những nhà máy gia công hàng may mặc chẳng thể đóng góp lặng thầm vào sự...
Tìm xưởng may gia công tại TP Hồ...