달팽이 배열에서 2차 배열을 동적 메모리 할당으로 할수 없을까요
연하늘
달팽이 배열에서 동적 메모리 할당을 이용해서 입력받은 정수에 따라서 메모리를 할당 할순 없을까요?질문 요약 :달팽이 배열을 짜보니깐 이것 저것 고쳐보게 되네요. 달팽이 배열이 입력될 2차배열을 동적 메모리 할당으로
입력 받고 싶은데 메모리 할당은 걍 malloc 쓰면 되니깐 되는데 이를 받는 포인터를 설정하는 곳에서 막혀버렸네요.
질문 내용 : 일단 제가 짠 코드부터 올립니다.
#includestdio.h
void main()
{
int a[10][10]={0};//저장될 2차배열
int m[4][2]={{0,1},{1,0},{0,-1},{-1,0}};//입력값의 방향 전환을 위한배열
int num,w=0,h=0,n,k=0,i,j;
scanf(%d,&n);
for(num=1;num=n*n;num++){
i=m[k%4][0];//저장될 배열의 i요소를 정해주는 문장
j=m[k%4][1];//저장될 배열의 j요소를 정해주는 문장 (행렬로 생각)
a[h][w]=num;//숫자가 저장될 위치
w+=j;//숫자가 저장될 위치 변화
h+=i;
if(w+j0||h+i0||(w+j=n)||(h+i=n)||a[h+i][w+j]!=0)
k++;//다음에 출력할 공간이 영역 밖일 때 방향전환
}
for(h=0;hn;h++){//저장되 있는 2차 배열 출력
for(w=0;wn;w++)
printf(%4d ,a[h][w]);
printf(\n);
}
}
입니다. 이거 짤대가 씨언어 2주쯤 했을때라 함수화는 하지 못했구요..
다시 보니깐 숫자를 입력할 2차배열공간을 처음에 할당해 놓는 것이 아니라 제가 입력 받은 정수에
따라 메모리 공간을 할당 시키고 싶어지네요.. -_+;; 간단한게 안되면 안된다고 해주시면 됨니다.
입력받은 것을 이용해서 malloc 을 이용해서 메모리 공간 할당 까지는 받겠는데 반환되는 void형 포인터를
4를 입력됬다면 int (*a)[4] 이런 형태의 포인터로 받을 수 있을까요..고수님들 조언 부탁드립니다.