В этом проблема. Я пытаюсь создать диаграмму памяти, и я все понимаю до b ++, потому что, когда этот код выполняется, он меняет значение val от 10 до 4. В чем причина этого?Указатели и ссылки
#include <iostream>
using namespace std;
void mem(int*& a, int* b){
a --;
b++;
a = new int[3];
a[0] = 3;
a[1] = *b;
a[2] = ++(*b);
}
int main()
{
int data[] = {2, 4, 6, 8};
int *ptrA = data;
for (int i = 0; i < 4; i ++){
(*ptrA)++;
ptrA++;
}
int val = 10;
mem(ptrA, &val);
}
Является ли знак амперсанда «void mem (int * & a, int * b)» преднамеренным? – dspfnder