초보의 고민
글쓴이: m91610464 / 작성시간: 금, 2011/09/02 - 6:21오후
1 #include <stdio.h> 2 3 int main(void) 4 { 5 int arr[ ]={1,2,3,4,5,6}; 6 int num; 7 int i; 8 9 int* a=arr; 10 int* z=&arr[5]; 11 12 while(*z>=1) 13 { 14 num=*a; 15 *a=*z; 16 *z=num; 17 18 a++; z--; 19 } 20 21 for(i=0; i<6; i++) 22 printf("%d ",arr[i]); 23 24 return 0; 25 }
여기서 고민입니다.
세그멘테이션 오류
가 뜨네요.
gdb에서는
Program received signal SIGSEGV, Segmentation fault.
0x08048430 in main () at /tmp/main.c:16
16 *z=num;
이 소리만 해뎁니다. 이유가 뭔가요?
Forums:
*z>=1 조건이 루프를 끝내주지는 못하네요.
*z>=1 조건이 루프를 끝내주지는 못하네요.
배열 이전 주소의 값이 1보다 작다는 보장이 없기 때문에
20, 21 라인을 18다음라인에 넣고 돌려보세요.
20, 21 라인을 18다음라인에 넣고 돌려보세요.
고작 블로킹 하나, 고작 25점 중에 1점, 고작 부활동
"만약 그 순간이 온다면 그때가 네가 배구에 빠지는 순간이야"
댓글 달기