Đây là một mẫu chung để sử dụng các mẫu để thực thi trình biên dịch để khởi tạo các giá trị kiểu gốc/POD (https://stackoverflow.com/a/11493744/16673 hoặc http://www.codeproject.com/Articles/825/Using-templates-for-initialization).Mẫu để thực hiện bộ nhớ tự động ghi đè lên sự hủy diệt
Có một mẫu tương tự tồn tại có thể được sử dụng để xóa giá trị khi nó vượt quá phạm vi vì lý do bảo mật, để đảm bảo giá trị không được để lại trên ngăn xếp khi biến bị hủy? Tôi sợ một sự triển khai tương tự ngây thơ có thể không hoạt động, vì trình biên dịch được tự do bỏ qua bất kỳ nhiệm vụ nào đến một giá trị đang bị lệch khỏi phạm vi, vì giá trị có thể được chứng minh một cách trivially không được sử dụng nữa. Có một số giải pháp phù hợp và di động hợp lý không, ví dụ: sử dụng dễ bay hơi?
Âm thanh hợp lý. Lau bằng randoms dường như tuy nhiên để mang lại ít lợi ích, đồng bằng zeroing nên làm công việc. Các giải pháp không cố gắng để bảo đảm chống lại một ai đó đọc các chip bộ nhớ hoặc một cái gì đó như thế này, chỉ cần chống lại một quá trình truy cập vào bộ nhớ. Hoặc là có một lý do để sử dụng dữ liệu ngẫu nhiên ngay cả trong trường hợp như vậy? – Suma
Giải pháp có vẻ là sử dụng các tính năng cụ thể của GCC (thuộc tính). Có một lý do để sử dụng char cho lưu trữ ở tất cả? Tại sao không sử dụng kiểu gốc? – Suma
@Suma nó phụ thuộc hoàn toàn vào những gì bạn muốn thực hiện. zeroes sẽ là tốt quá - nó chỉ là một minh họa. – justin