Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: Con trỏ cấp 2 và hàm malloc

  1. #1
    Ngày gia nhập
    09 2011
    Bài viết
    4

    Mặc định Con trỏ cấp 2 và hàm malloc

    Chào mọi người. Đang tập tành về con trỏ và mình cũng đang có rất nhiều thắc mắc, mong rằng mọi người giúp đỡ mình giải đáp những thắc mắc sau nha. Mình có xem bài viết về con trỏ cấp 2 của anh Kevin Hoàng ở topic này: http://diendan.congdongcviet.com/showthread.php?t=2154
    Mình thấy có 2 vấn đề mình đang chưa hiểu lắm.

    Một là, đối với đoạn code này:
    Code:
       int **pp = (int **)malloc(5 * sizeof(int *));
       int *p = (int *)malloc(5 * 10 * sizeof(int));
       for (int i = 0; i < 5; i++)
           pp[i] = p + i * 10;
    thì như anh Kevin Hoàng có nói là phải giải phóng 2 con trỏ, nhưng nếu mình đặt đoạn code đó trong một hàm con, và khi hàm main() gọi đến hàm con đó, thì việc giải phóng con trỏ p sẽ như thế nào. Tại vì nếu cuối hàm con mình thêm 1 dòng free (p); thì khi mình nhập kết quả, và xuất kết quả ra, sẽ cho ra 1 giá trị a[0][0] là 1 giá trị rác trong trường hợp số hàng là 1 và số cột là 2. Còn nếu không thêm free (p); thì không bị kết quả sai như vậy.

    Hai là, đối với đoạn code này:
    Code:
     int (*p)[10] = (int (*)[10])malloc(5 * sizeof (int [10]));
    cũng là đoạn code tối ưu nhất trong 3 cách, nhưng vấn đề là mình phải xác định được Max cột bằng bao nhiêu, trong khi 2 code đầu không cần phải biết chính xác số cột, số hàng, điều này sẽ gây vấn đề là không viết được 1 hàm con cho chương trình khi không xác định được Max cột. Vậy mọi người cho mình hỏi có cách nào mà trong trường hợp này vẫn tạo được hàm con mà không phải xác định Max cột không.

    Cảm ơn mọi người !!!

  2. #2
    Ngày gia nhập
    09 2013
    Bài viết
    3

    Mặc định các bạn cho mình xin đoạn code của yêu cầu sau dùm

    - Xây dựng chương trình quản lý bán hàng.
    - Công tác bán hàng được quản lý theo các đối tượng: hàng hóa, khách mua, hóa đơn mua hàng của khách. Thông tin về mỗi đối tượng quản lý được lưu vào các tệp tin trên đĩa để phục vụ các yêu cầu tra cứu về sau.
    - Chương trình tối thiểu có các chức năng sau:
    + Nhập, bổ sung, sửa, xóa, hiển thị và lưu vào các tệp dữ liệu thông tin các mặt hàng, thông tin khách hàng và hóa đơn bán hàng. Tìm kiếm thông tin hàng, hóa đơn. In hóa đơn bán hàng cho khách.
    -mong được sự giúp đỡ của mọi người!!!!

Các đề tài tương tự

  1. Hàm malloc trong C
    Gửi bởi thaohoangf trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 04-12-2012, 07:34 AM
  2. Lập trình C++ câu hỏi ngắn về Malloc
    Gửi bởi hostpro16 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 9
    Bài viết cuối: 21-11-2012, 08:47 PM
  3. hàm malloc
    Gửi bởi edconan93 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 10
    Bài viết cuối: 13-07-2012, 01:46 AM
  4. Phân biệt hàm malloc và thư viện malloc.h
    Gửi bởi nguyenthanhhai90vp trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 16-09-2010, 11:34 AM
  5. Gặp lỗi khi sử dụng hàm malloc
    Gửi bởi Buomvang trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 19-04-2010, 02:04 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn