Win32api질문..
글쓴이: yww24 / 작성시간: 수, 2014/12/10 - 7:06오후
이상하게 빌드다하고 실행하면 프로그램이 멈추네요..
잘못된 주소값을 참조해서 그런경우가 많다고 들었습니다만
어디가 잘못된건지 도저히모르겠네요;
다음은 코드내용..
#include <stdio.h> #include <stdlib.h> typedef struct list{ int data; struct list * next; }list; void Insert(list * head, int data); void Print(list* head); int main(void){ list * head = (list*)malloc(sizeof(list)); (*head).next = NULL; Insert(head, 7); Print(head); return 0; } void Insert(list * head, int data){ //작업에 쓰일 변수들 생성// list * cursor; list * newlist; cursor = NULL; newlist = (list*)malloc(sizeof(list)); (*newlist).data = data; //리스트의 마지막부분을 찾아내는 작업// if ((*head).next = NULL){ (*head).next = newlist; return; } else { for (cursor = head; (*cursor).next != NULL, cursor = (*cursor).next;){ if ((*cursor).next == NULL)break; } //새로운 노드를 추가함// (*cursor).next = newlist; return; } } void Print(list* head) //리스트의 데이터들 출력// { list * cursor = NULL; if (head == NULL) { printf("출력할 내용이 없습니다.\n"); } else { printf("연결리스트 데이터 출력\n"); for (cursor = (*head).next; (*cursor).next != NULL; cursor = (*cursor).next) { printf("- %d",(*cursor).data); } } return 0; }
Forums:
디버거 쓰는 게 익숙하지 않으시면 printf 라도
디버거 쓰는 게 익숙하지 않으시면 printf 라도 프로그램 주요 분기점에 삽입해서 제대로 진행하고 있는지 눈으로 확인해보셨다면 최소한 폴트가 어디서 나는지는 아실 수 있었을텐데요.
저 for 루프는 다음처럼 고치는 게 낫겠네요.
마찬가지로 Print 함수의 for 루프도, 원하는 출력을 못해줄 것입니다. 조건부를 잘 보세요.
좋은 하루 되세요!
친절한답변감사합니다!
친절한 답변 감사합니다! 제가좀더 자세히봐야됬네요..
댓글 달기