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 루프도, 원하는 출력을 못해줄 것입니다. 조건부를 잘 보세요.
좋은 하루 되세요!
친절한답변감사합니다!
친절한 답변 감사합니다! 제가좀더 자세히봐야됬네요..
댓글 달기