Xin chào, và chào mừng trở lại.
Chúng tôi có một thách thức khác dành cho bạn.
Thử thách này sẽ lại về cấu trúc.
Nó sẽ giúp bạn làm quen với các phần tử trong cấu trúc có
chứa con trỏ.
Vì vậy, bạn phải phân bổ bộ nhớ cho phần tử đó.
Nó cũng sẽ giúp bạn làm quen với việc khai báo một cấu
trúc dưới dạng một con trỏ và cũng truyền một cấu trúc như một con trỏ đến một hàm.
Vì vậy, chủ yếu là cấu trúc và con trỏ trong thử thách này.
Vì vậy, bạn cần viết một chương trình c tạo một con trỏ cấu trúc
và chuyển nó đến một hàm.
Tạo một cấu trúc có tên là mục với các thành viên sau.
Tên mục nên là một con trỏ ký tự.
Một số lượng, phải là một số nguyên.
Giá phải thả nổi và số tiền phải là một phao.
Số tiền được lưu trữ trong cơ cấu về cơ
bản sẽ là số lượng nhân với giá vì đó sẽ là tổng số tiền.
Tôi muốn bạn tạo hai hàm.
Tôi muốn bạn tạo một hàm mục đọc được đặt tên có
một con trỏ cấu trúc của mục loại là một tham số phải là một con trỏ.
Chúng tôi biết những lợi thế của các chức năng chủ yếu lấy con trỏ làm
đối số thay vì cấu trúc thông thường chúng tương thích ngược.
Các phiên bản trước của trình biên dịch c không hoạt động với cấu trúc.
Và nó cũng nhanh hơn rất nhiều và hiệu quả hơn khi bạn chuyển
một con trỏ đến một hàm vì bạn không cần phải sao chép tất cả các
yếu tố, bạn chỉ cần sao chép địa chỉ.
Vì vậy, chúng ta sẽ có các chức năng nhận như tham số con
trỏ đến cấu trúc.
Mục đã đọc này sẽ tiếp tục.
Chức năng này nên làm gì là, nó sẽ
đọc từ người dùng tên sản phẩm, giá cả và số lượng hoặc tên mặt hàng.
Nội dung ngay trong phải là được lưu trữ trong quá khứ trong cấu trúc.
Vì vậy, bạn đang vượt qua một con trỏ đến một cấu trúc mà bạn muốn lưu
trữ nó trong đó.
Tôi muốn bạn tạo một cái khác chức năng có tên mục in.
Đây cũng là một tham số con trỏ cấu trúc của loại mục.
Chức năng này sẽ in ra nội dung của tham số.
Vì vậy, bạn chỉ đi để thực hiện một số bản in.
Đó sẽ là khá cơ bản.
Trong chức năng chính, bạn muốn để khai báo một mục về cơ
bản là một mục của cấu trúc con trỏ hoặc khai báo một mục và một con trỏ của cấu trúc
vì khi đó bạn có thể gán cho
điểm của mặt hàng, địa chỉ của mặt hàng đó.
Và sau đó bạn cũng cần phân bổ bộ nhớ cho con trỏ tên mục.
Vì vậy, hãy nhớ tên mặt hàng phần tử bên trong cấu trúc được trỏ ký tự có
nghĩa là bạn phải cấp phát bộ nhớ cho nó.
Nếu đó là một nhân vật mảng, bạn sẽ không cần phải làm như vậy.
Nhưng hãy nhớ rằng, khi bạn có một phần tử như một con trỏ ký tự,
tất cả những gì nó làm là tạo bộ nhớ cho địa chỉ, giá trị của con trỏ đó.
Nó không tạo ra bộ nhớ cho những gì nó trỏ đến.
Vì vậy, nếu bạn chỉ định một hằng số đối với nó, nó có thể ở bất cứ đâu trong bộ nhớ.
Vì vậy, bạn muốn phân bổ bộ nhớ
cho phần tử tên mục bên trong cấu trúc.
Con trỏ mục phải là được truyền vào cả
chức năng đọc mục in.
Vậy một lần nữa thử thách này sẽ giúp ích gì cho bạn đang hiểu các gợi ý về cách sử
dụng chúng như một thành viên bên trong một cấu trúc và sau đó là cách
chuyển chúng xung quanh và bạn có một số thực hành với việc làm một số malloc là tốt.
Và sau đó đừng quên, bất cứ khi nào bạn làm một malloc, bạn phải
làm miễn phí, vì vậy hãy đảm bảo rằng bạn thêm nó vào chương trình của bạn.
Vậy thì chúc may mắn.
Tôi sẽ cung cấp một giải pháp trong bài giảng tiếp theo.
Theo như kích thước không phù hợp, bạn có thể chỉ cần chọn một kích thước tùy ý, chẳng
hạn như 30 ký tự hoặc tương tự.
Bạn không cần phải đọc nó trong.
Hãy cho tôi biết nếu bạn có bất kỳ câu hỏi. Cảm ơn bạn.