Проблема
У меня есть две структуры: первая содержит данные в массиве и в векторе; второй предоставляет доступ к указателям на эти данные как pArr = &array[0] или pVec = &vector[0]. Далее я могу получить различные значения pVec[0] в зависимости от того, как pVec был создан. Однако pArr всегда работает должным образом.
Код для воспроизведения
Я использую Visual Studio 2017.
Проблема У меня есть две структуры: первая содержит данные в массиве и в векторе; второй предоставляет доступ к указателям на эти данные как pArr = &array[0] или pVec = &vector[0]. Далее я могу получить [b]различные[/b] значения pVec[0] в зависимости от того, как pVec был создан. Однако pArr всегда работает должным образом. Код для воспроизведения Я использую Visual Studio 2017. [code]#include #include
struct InnerClass {
InnerClass(int _n) : n(_n) { arr = new int[n]; for (int i{ 0 }; i < n; ++i) { vec.push_back(i); arr[i] = i; } }
const int* get_vector_of_new_object_by_pointer() const { const InnerClass* sub = new InnerClass(n); return sub->get_pointer_to_vector_begining(); }
const int* get_array_of_new_object_by_pointer() const { const InnerClass* sub = new InnerClass(n); return sub->get_pointer_to_array_begining(); } };
int main() {
OuterClass mc(10);
const int *pArrMember = mc.get_array_of_member(); const int *pVecMember = mc.get_vector_of_member(); const int *pArrNewObject = mc.get_array_of_new_object(); const int *pVecNewObject = mc.get_vector_of_new_object(); const int *pArrNewObjectByPointer = mc.get_array_of_new_object_by_pointer(); const int *pVecNewObjectByPointer = mc.get_vector_of_new_object_by_pointer();