2013-12-19 2 views
0

내 코드는 다음과 같은 것입니다 위의 클래스의 모든 객체에 대해 마찬가지로 :구현 동적으로 생성 된 배열은

int arr[5][5];

편곡은 정수 값이 있습니다. 이런 식으로 복사하고 싶습니다.

for(int i=0; i<5;i++) 
    for(int j=0;j<3;j++)*(*(block+i)+j).v=arr[i][j]; 

확실히 내 IDE 상태로는 불가능합니다. 그것은 "진술이 누락되었습니다."라고 말합니다. 내가 비록 블록을 초기화하고 방법 또한이 인

*(*(block+i)+j).v=arr[i][j];

으로 나타냅니다.

int V=5; 
block = new cell*[V+1]; 
for(int x__=0; x__<=V; ++x__) 
{ 
    for(int y__=0; y__<=V; ++y__) 
    { 
     block[x__][y__].v=0 ; 
    } 
} 

아무도 도와 줄 수 있습니까?

+0

블록 [i] [j] .v = arr [i] [j]; ' – godel9

+0

@ godel9 그 중 하나도 작동하지 않았다. –

+0

초기화 문에 대한 내 게시물을 편집했습니다. @ godel9 기본적으로 컴파일러는 내가 언급 한 오류로 인해 붙어 있습니다. "; 문이 없습니다." –

답변

1

당신은 제대로 block를 초기화하지 않는 :

int V=5; 
block = new cell*[V]; 
for(int x = 0; x < V; ++x) 
{ 
    block[x] = new cell; 
    for(int y = 0; y < V; ++y) 
    { 
     block[x][y].v = 0; 
    } 
} 

그런 다음 사용하여 2 차원 배열을 복사 할 수 있습니다 또한

for(int i = 0; i < V; ++i) 
    for(int j = 0; j < V; ++j) 
     block[i][j].v = arr[i][j]; 

, 난 당신이 C에서 배열에 대한 std::vector 들여다 권하고 싶습니다 ++, 생성자에서 v 멤버 변수를 초기화해야합니다.

+0

벡터 템플릿을 사용할 수없는 사전 표준 버전을 작업 중입니다. 그래서 나는 그것을 사용할 수 없다. 그리고 그것을 초기화하기 위해 생성자를 사용했습니다. 알아 들었어. 이걸 시험해 볼게. –

+0

생성자에서'v'를 초기화한다면'cell **'2D 배열을 생성 할 때'v'를 0으로 설정할 필요가 없습니다. – godel9

+0

예 루프를 사용하여 해당 진술을 삭제했습니다. –

관련 문제