Đoạn mã sau có an toàn không, miễn là tôi không đọc bất kỳ phần tử nào trong mảng của cấu trúc mà không cài đặt nó với giá trị thực trước? Cảm ơn.Bạn có thể sao chép dữ liệu chưa được khởi tạo nếu nó không được sử dụng/thiết lập sau không?
const int data_size = 5;
struct Testing
{
int data[data_size];
Testing(const int data[data_size])
{
std::copy(data, data + data_size, this->data);
}
};
int main()
{
int data[data_size];
data[2] = 57;
Testing t(data);
t.data[1] = 93;
}
Không chắc chắn lý do tại sao bạn muốn thực hiện việc này, nhưng điều đó sẽ an toàn. Rác rác trong thùng rác, nhưng rác không nên rơi ra khỏi thùng rác và bốc mùi lên bộ nhớ xung quanh. –
Với các loại không thể phân chia không đáng kể, rất có thể là không an toàn và chắc chắn là hành vi không xác định. Với các loại có thể gán được tầm thường, nó có thể là * an toàn, trong hầu hết các điều kiện, nhưng chắc chắn vẫn chưa được xác định. –
Xin chào Ben, tôi không hiểu bình luận của bạn. Bạn có ý nghĩa gì với việc chuyển nhượng một cách trivially? –