연결리스트 작성중에 세그멘테이션 오류
글쓴이: woodydrake / 작성시간: 월, 2016/05/23 - 4:14오전
기초적인 연결리스트 작성중에 세그멘테이션 오류가 생겼습니다..
#include<stdio.h> struct node { int block_number; struct node *next; }; void insert_front(struct node *head, int num); void print_list(struct node *head); int main() { struct node *list; insert_front(list, 10); print_list(list); return 0; } void insert_front(struct node *head, int num) { head->block_number = num; } void print_list(struct node *head) { struct node *p = head; printf("%d->", p->block_number); }
원초적으로 문제 해결하려고 다른 부분 바떼어내고 지금 시도중인데 이렇게 해도
해결이 안되네요;; 어딘가 분명 잘못된 생각으로 해결못한것같은데...
어느부분에서 포인터를 잘못사용한건지 잘모르겠습니다 ㅠㅠ;;
Forums:
포인터 개념부터 다시 잡으셔야 할 것
포인터 개념부터 다시 잡으셔야 할 것 같습니다.
struct node *list만 선언하면 해당 list 변수는 초기화되지 않은 메모리 위치 값만 포함하고 있지, 실제로 이 변수와 연결된 메모리는 아직 할당되지 않은 상태입니다. 이 상태에서 insert_front 함수를 실행하면 초기화되지 않은 메모리에 접근하려고 하기 때문에 당연히 segfault가 뜰 수 밖에 없죠.
gcc -Wall 옵션을 주고 컴파일 해 보셔요.
gcc -Wall 옵션을 주고 컴파일 해 보셔요. 에러 또는 경고가 자세히 나옵니다.
세벌 https://sebuls.blogspot.kr/
댓글 달기