Имейте проблему. Например у меня есть кодПолучить элемент двумерного массива с указателями
class A
{
public:
int **p;
const int size=4;
A()
{
p=new int*[size];
for(int i = 0 ; i<size;i++)
{
p[i]=new int[size];
}
for(int i = 0 ;i<size*size;i++)
{
*(*p+i)=0;
}
}
};
Затем я создаю динамический объект класса A *matrix=new A;
Как я могу получить доступ общественности к **p
? Я знаю, как сделать это с помощью функции:
int A::GetElement(int position)
{
return *(*p+position);
}
, но интересно, как это сделать с простым способом. Я пробовал matrix->*(*p+i)
, но он не работал.
'X [Y],' такого же, как '* (X + Y)', это действительно гораздо яснее использовать обозначение массива. Если вы написали 'p [0] [i] = 0;' вместо '* (* p + i) = 0;' у вас было бы больше шансов обнаружить вашу ошибку. –