이전에 동적으로 할당 된 2 차원 배열에 행을 추가하려고했지만 컴파일러에서 새 메모리를 할당하려고하는 행에서 lvalue가 필요하다는 오류가 발생합니다. 새로운 행.cpp를 사용하여 동적 행을 추가 한 후
#include<iostream>
//#include<stdlib.h>
using namespace std;
int main()
{
int (*p)[2] = new (int [5][2]);
for(int i =0; i<5; i++)
{
for(int j =0; j<2; j++)
{
p[i][j]= i;
}
}
// p = (int **) realloc(void*, 12)
int **l = (int **)p;
(l+5) = new int[1][2];
p[5][0] = 5;
p[5][1] = 5;
for(int i =0; i<=5; i++)
{
for(int j =0; j<2; j++)
{
cout<<p[i][j];
}
}
}
'int ** l = (int **) p;'입니다. 그게 ... awfuly wrong. 2 차원 배열에 대한 포인터는 포인터에 대한 포인터가 아닙니다. 캐스트없이 시도했을 때의 오류에 대한 좋은 이유가 있습니다. – jrok
['std :: vector'] (http://en.cppreference.com/w/cpp/container/vector)를 참조하십시오. –
'std :: vector'를 지적하는 것은 완벽하게 올바른 일입니다. 이것은 오히려 배열을 가르치는 데 사용되는 간단한 학교 과제에서 취한 것으로 보인다. – LihO