제 생각엔 동적 할당이 잘못된 것 같은데..
동적할당한 2차원 배열을 함수에 어떻게 넘겨줘야하는건지...
아래 에러좀 해결해 주세요..ㅜ_ㅜ
그리고 그냥 함수를 안만들고 main에 집어넣어서 해봤는데요.. 그렇게 해서 하니까 에러가 없고, 결과값이 제대로 나오긴 하는데, 여전히 메모리 오류가 나네요. 어딜 참조했다고... 동적할당이 문제인 것 같은데... 해결좀... 부탁..
----------------------------------------------------------------
#include<iostream.h>
#include<math.h>
#include<time.h>
int n,arr[100],res;
void nqueen(int);
bool promising(int);
void main()
{
long s,e;
cin>>n;
s = clock();
nqueen(0);
cout<<" 걸린 시간 : ";
e = clock();
cout<<e-s<<endl;
}
void nqueen(int k)
{
int i,j;
if(promising(k-1))
{
if(k==n)
{
for(i=0;i<n;i++,cout<<endl)
for(j=0;j<n;j++)
if(arr[i]==j) cout<<"Q";
else cout<<"*";
cout<<endl;
return;
}
for(i=0;i<n;i++)
{
arr[k] = i;
nqueen(k+1);
}
}
}
bool promising(int k)
{
int i,j;
for(i=0;i<k;i++)
if(arr[i] == arr[k] || abs(arr[k] - arr[i]) == k-i) return false;
return true;
}
|