그렇게 하시면 그냥 1차원 배열로 해결하는 것이고...
아래와 같이 해야... 나머지 소스코드 수정없이 사용 가능할 듯 하네요.
int **p;
p = (int**)malloc(sizeof(int*)*5); //생성
for(int i=0; i<5; i++){
p[i]=(int*)malloc(sizeof(int)*5);
}
.
.
.
for(int i=0; i<5; i++){ //해제
free(p[i]);
}
free(p);
: : 보통 C++에서 이차원 배열로 동적 할당 할땐
: :
: : int *p = new[5][5];
: :
: : 이런 식으로 하잖아요
: :
: : 근데 C에서는
: : malloc, calloc등을 이용 한 번에 이차원 배열을
: : 할당 할 수 있는지.. 만약 없다면
: : 어떻게 해야 되는지..허접한 질문 이지만 꼭 답변 부탁합니다.
:
: c++에서는
:
: int *p;
:
: p = new int[5][5];
: 이런식이 아닌지요?? 자료형이 들어가야 할텐데..
:
: 흠흠 딴지 걸려고 쓴 글은 아니니;; 넘어가고;;
:
:
:
: int *p;
: p=(int *)malloc( sizeof(int)*25 );
:
: 이런식으로 할당하신 담에..
: 사용하실 땐..
:
: p[0][0]에 해당하는 부분 -> *p
: p[0][1]에 해당하는 부분 -> *(p+1)
: .
: .
: .
: p[2][0]에 해당하는 부분 -> *(p + 5*2 )
: 이런식으로 사용하심 될텐데요..