[질문]이차원 동적생성 문제
글쓴이: zhangyuan / 작성시간: 일, 2003/10/12 - 10:37오후
#include "stdio.h" int main(int argc, char* argv[]) { char source[]={'a','b','c'}; char **dest; dest=new char*[10]; *dest=new char[5]; for(int i=0;i<10;i++) for(int k=0;k<5;k++){ dest[i][k]='\0'; } dest[0][0]=source[0]; dest[0][1]='\0'; dest[1][0]=source[0]; dest[1][1]='\0'; dest[2][0]=source[0]; dest[2][1]='\0'; printf("%s %s %s\n",dest[0],dest[1],dest[2]); return 0; }
위와같이 일반 char 형을 string형태로 고치기 위해서 사용을 했는데
메모리참조 에러가 발생하네요..
어디가 잘못된것인지 잘 모르겠습니다..
도움부탁드립니다.
xx[0] , xx[1] 이런식으로 안하고 memcpy나 strcpy를 사용했는데도
마찬가지던데....
Forums:
...
아...맞다..그랬던거군요...넘 어이없이 시간만 엄청낭비
아...맞다..
그랬던거군요...
넘 어이없이 시간만 엄청낭비했습니다..ㅠ.ㅠ
감솨감솨또감솨~!
삶의 이탈을 꿈꾸며..
직사각 다차원 배열을 선언하는 것이 좋지 않나요?
다른 이야기입니다만 이런 code 를 많이 보게 되면서 항상 생각되는 것이 memory 동적할당하고, 해제하는게 영 불편하다는 거죠.
위의 code 에서 2차원을 행렬로 볼때 각각의 행에 정해진 열은 5이므로 차라리
char (*dest)[5] = new char[10][5];
이 차라리 낫다고 생각되네요.
어?...!!!
그런데 이경우 memory 해제를 어떻게 하죠?
C 에서는 그냥 free(dest) 하면 그만인데....
C++ 에서는 delete 인가요? 아니면 delete[] 인가요?
delete[][] 은 안되는군요...
댓글 달기