Tôi đang cố gắng sử dụng std::vector
như một char
mảng.
Hàm của tôi mất trong một con trỏ trống:
void process_data(const void *data);
Trước đây tôi chỉ đơn giản là sử dụng mã này:
char something[] = "my data here";
process_data(something);
Mà làm việc như mong đợi.
Nhưng bây giờ tôi cần sự năng động của std::vector
, vì vậy tôi đã thử mã này thay thế:
vector<char> something;
*cut*
process_data(something);
Câu hỏi là, làm thế nào để tôi chuyển vector char cho hàm của mình để tôi có thể truy cập dữ liệu thô của vector (bất kể nó ở định dạng nào - float, v.v.)?
Tôi đã thử điều này:
process_data(&something);
Và điều này:
process_data(&something.begin());
Nhưng nó đã trả về một con trỏ tới dữ liệu vô nghĩa và sau đó đã đưa ra cảnh báo : warning C4238: nonstandard extension used : class rvalue used as lvalue
.
vector<bool>
đó là ngoại lệ cho câu trả lời này (và không có bộ nhớ lưu trữ liền kề củabool
s).