- #include <stdio.h>
- int arr[10001] = { 0, };
- void selfnum(int num)
- {
- if (num > 10001)
- return;
- int nextnum = num + 1;
- int total = num;
- while (num != 0)
- {
- total += num % 10;
- num = num / 10;
- }
- if (total <= 10001)
- arr[total] = 1;
- selfnum(nextnum);
- }
- int main(void)
- {
- int i;
- selfnum(1);
- for (i = 0; i < 10001; i++)
- {
- if (arr[i] == 0)
- }
- return 0;
- }
백준 셀프넘버라는 문제인데 디버깅까지 해봤는데 i가 4300 쯤부터 예외처리 뜨면서 종료됨
예외 발생(0x00371729, Project2.exe): 0xC0000005: 0x00690F9C 위치를 기록하는 동안 액세스 위반이 발생했습니다..
포인터 쓰는것도 아니고 걍 전역으로 박아놓고 초기화 해놨는데 에러 도데체 왜뜨는거지
c언어 마이너 갤러리로 - dc App
확실한건 아닌데 내가 봤을 때 arr 범위가 10000을 넘어서 그럼 stack정렬에서 10000까지는 못 다루는 걸로 알고있음
arr범위가 10000이 되려면 heap정렬로 바꿔야 함
c언어면 malloc랑 free활용해서 써보셈
c++이면 new int도 되고 melloc free도 되고