char *mem = malloc(...)
대신 std::vector<char>
을 사용하도록 코드를 옮겼으나 지금은 operator []
을 통해서만 벡터 데이터에 액세스 할 수 있지만 포인터는 사용하지 못하는 문제에 직면하고 있습니다. 이 포인터를 통해 vector
의 데이터에 액세스하는 것은 여전히 가능하다면포인터를 연속 메모리 조각을 std :: vector에서 얻을 수 있습니까? <char> C++에서?
char *data = malloc(100);
fill_data2(data);
char *ptr = data;
모든 아이디어 :이 할 수있는 전에
std::vector<char> data;
fill_data(data);
char *ptr = data;
:
내가 좋아하는 물건을 쓸 수 없습니다?
감사합니다. Boda Cydo.
미래에는 C++ 0x가 약간 더 명시 적으로 이것을하기 위해'data()'멤버를 추가 할 것입니다. –
그러나 벡터의 재 할당을 조심하십시오. –
C++ 표준은 메모리가 연속 블록에 저장되도록 보장합니까? ** 편집 ** : 예, 허브 셔터 기사를 참조하십시오. – Philipp