aorwn970   2년 전

논리는 맞는 것 같은데 어느부분에서 오류가 나는 지 모르겠습니다.

recoma   2년 전

입력값이 항상 M <= N 이기 때문에 굳이 M<=N 조건문을 사용하지 않으셔도 됩니다.

그리고 16라인에 memnum값이 0임에도 불구하고 arr을 동적할당 하려고 하고 있습니다. C언어에서는 길이가 0인 메모리 크기를 할당할 수 없습니다. 이 때문에 메모리 할당 관련 에러가 발생합니다.

그 밖에 반례로는 M과 N이 같고 소수일 때, 자기 자신(M이나 N)을 출력해야 하는데 -1이 출력됩니다. 이 부분을 고려해야 하실 것 같습니다. 

aorwn970   2년 전

정말 감사드립니다!! 메모리 동적 할당 관련 내용은 아예 생각 조차 못했는데 지적해주셔서 정말 감사합니다. 반례 들어주신 것도 정말 감사드립니다. 많은 도움이 되었습니다!

some256   2년 전

malloc(0) 동작은 다음 둘 중 하나입니다.

If the size of the space requested is zero, the behavior is
implementation-defined: either a null pointer is returned to indicate an error, or the behavior is as if
the size were some nonzero value, except that the returned pointer shall not be used to access an
object.

크기가 0인 할당이 요청되면 동작은 다음 둘 중 하나입니다: 에러를 표시하는 NULL 포인터를 반환하거나
단지 사용할 순 없을 뿐 NULL이 아닌(nonzero) 값을 반환합니다.

realloc() 에 크기가 0인 할당이 요청되면 다양한 환경에서는 이 처럼 동작합니다.
http://www.open-std.org/jtc1/s...

aorwn970   2년 전

많은 도움이 되었습니다! 정말 감사합니다!!

댓글을 작성하려면 로그인해야 합니다.