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

Đề tài: hỏi hơi ngu tý,nhưng mới học C mà:cho mình hỏi ý nghĩa của đoạn code này là gì?

  1. #1
    Ngày gia nhập
    09 2012
    Nơi ở
    Computer\Local Disk (C)\Windown\System32\Recover
    Bài viết
    6

    Mặc định hỏi hơi ngu tý,nhưng mới học C mà:cho mình hỏi ý nghĩa của đoạn code này là gì?

    1-int *a, n;
    2-printf("\nnhap so phan tu: ");
    3-scanf("%d", &n);
    4-a = (int*)malloc(n*sizeof(int));

    -> mình biết cái dòng 4 là để cấp phát bộ nhớ động, từ đây a sẽ đóng vai trò như 1 mảng( mà con trỏ cũng sẵn có tính chất mảng nữa).(int*)-> theo mình nghĩ đây là kiểu biến (int)-> đây là kiểu đối.sizeof là cái gì mình chịu.malloc là 1 hàm trong thư viện stdlib.h hay khai báo malloc.h cũng ok. mong mọi người chỉ giáo giùm xem cách nghĩ của mình đã đúng chưa, sai ở chỗ nào?

  2. #2
    Ngày gia nhập
    11 2010
    Nơi ở
    hell
    Bài viết
    165

    tìm hiểu thêm về con trỏ đi bạn
    các bài của anh langman rất hay đấy
    HT117-5277

  3. #3
    Ngày gia nhập
    12 2012
    Bài viết
    0

    Trích dẫn Nguyên bản được gửi bởi nguyendo94nd Xem bài viết
    1-int *a, n;
    2-printf("\nnhap so phan tu: ");
    3-scanf("%d", &n);
    4-a = (int*)malloc(n*sizeof(int));

    -> mình biết cái dòng 4 là để cấp phát bộ nhớ động, từ đây a sẽ đóng vai trò như 1 mảng( mà con trỏ cũng sẵn có tính chất mảng nữa).(int*)-> theo mình nghĩ đây là kiểu biến (int)-> đây là kiểu đối.sizeof là cái gì mình chịu.malloc là 1 hàm trong thư viện stdlib.h hay khai báo malloc.h cũng ok. mong mọi người chỉ giáo giùm xem cách nghĩ của mình đã đúng chưa, sai ở chỗ nào?
    - sizeof là hàm lấy dung lượng ô nhớ cho kiểu dữ liệu, ở đây là int. Hàm này giúp chúng ta tránh sự phụ thuộc vào kiến trúc nền tảng máy tính mà trên đó chương trình được chạy

    [line 4]: Cấp phát n vùng nhớ, mỗi vùng nhớ có dung lượng là sizeof(int), sử dụng toán tử chuyển kiểu để trả về dạng con trỏ int và gán cho biến a.

    Note (trích dịch từ wikipedia)
    malloc trả về một con trỏ dạng void, điều đó có nghĩa là, đó là con trỏ trỏ tới một vùng nhớ không định kiểu. Việc sử dụng toán tử chuyển đổi kiểu dữ liệu là bắt buộc trong ngôn ngữ C++ do C++ yêu cầu chặt chẽ về kiểu dữ liệu trong khi nó không bắt buộc đối với C
    Việc thiếu định nghĩa rõ ràng về kiểu trả lại từ hàm malloc theo nhiều chuyên viên lập trình là cách xử lý không an toàn về kiểu dữ liệu: malloc cấp phát dựa trên số lượng byte đếm được chứ không dựa trên kiểu dữ liệu. Điều này khác hẳn đối với toán tử new của C++, trả về một con trỏ mà kiểu dựa trên loại đối tượng được cấp phát bộ nhớ

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

  1. ý nghĩa đoạn code
    Gửi bởi Nt.InY0urEyes trong diễn đàn Nhập môn lập trình Java
    Trả lời: 7
    Bài viết cuối: 15-11-2012, 02:00 PM
  2. cho em hỏi ý nghĩa đoạn code này với !
    Gửi bởi tan trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 8
    Bài viết cuối: 01-01-2012, 09:04 PM
  3. Ma Trận nghịch đảo trên C++ - Các bác xem CODE của em sai ở chỗ nào
    Gửi bởi nguyenhung1121990 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: 09-04-2010, 09:11 PM
  4. Lập trình C Nào hãy dịch nghĩa đoạn code C này!
    Gửi bởi Async 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: 23-01-2010, 06:07 PM
  5. Xem hộ em code bài tính tổng nghịch đảo xem sai chỗ nào:(
    Gửi bởi bean_lazy trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 14-10-2009, 11:06 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