Xin chào các bạn. Tôi đang làm việc để sửa mã cũ hơn cho công việc của mình. Nó hiện đang được viết bằng C++. Họ đã chuyển đổi phân bổ tĩnh thành động nhưng không chỉnh sửa memsets/memcmp/memcpy. Đây là lần thực tập lập trình đầu tiên của tôi nên không có câu hỏi mới.Sử dụng ghi nhớ về cấu trúc trong C++
Mã sau đây là trong C, nhưng tôi muốn có nó trong C + + (tôi đọc rằng malloc là không thực hành tốt trong C + +). Tôi có hai kịch bản: Đầu tiên, chúng tôi đã tạo f. Sau đó, bạn sử dụng & f để điền bằng không. Thứ hai là một con trỏ * pf. Tôi không chắc chắn làm thế nào để đặt pf cho tất cả 0 như ví dụ trước trong C + +.
Bạn có thể làm pf = new foo
thay vì malloc và sau đó gọi memset(pf, 0, sizeof(foo))
?
struct foo { ... } f;
memset(&f, 0, sizeof(f));
//or
struct foo { ... } *pf;
pf = (struct foo*) malloc(sizeof(*pf));
memset(pf, 0, sizeof(*pf));
Nó phụ thuộc vào những gì trong foo! –