0
온라인 판사에게 다음 기능을 구현하는 동안 이중 자유 또는 손상 (! prev) 오류가 발생합니다.C에서 이중 자유 또는 손상 (! prev) 오류
void nextPermutation(int* A, int n1)
{
int i = 0;
int tmp = 0;
int flag = 0;
int ret = 0;
if(n1 == 1)
return A[0];
for(i = n1; i > 0; i--)
{
if(flag == 0)
{
if(A[i] > A[i - 1])
{
tmp = A[i];
A[i] = A[i - 1];
A[i - 1] = tmp;
flag = 1;
ret = i;
break;
}
}
}
for(i = ret; i < n1 - 1; i++)
{
if(A[i] > A[i + 1])
tmp = A[i];
A[i] = A[i + 1];
A[i + 1] = tmp;
}
}
그러나 맞춤 입력을 사용하여 코드를 테스트하면 정상적으로 작동합니다. 아무도 왜이 일이 일어날 지 말해 줄 수 있습니까?
함수의 반환 유형이 void이고 첫 번째 조건 인 경우 A [0]을 반환합니다. – denis
두 번째'for' 루프에서 3 개의 모든 과제가'if'의 일부가되어야합니까? 중괄호를 사용하지 않았으므로 첫 번째 행만'if'에 있습니다. – Barmar
전화를 거는 곳의 코드를 게시 할 수 있습니까? – denis