<c언어> malloc이 처음에만 돌아가고 나중에는 안돌아가네요ㅠㅠ
글쓴이: 이상민@Naver / 작성시간: 일, 2019/03/31 - 11:52오후
텍스트파일을 입력받아서 연결리스트 만들려고 하는데
malloc함수가 두번째까지는 돌아가고 그다음부터는 안돌아가요ㅠㅠ 왜이러는지 아시는 능력자분 혹시 계신가요??
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include <stdlib.h>
typedef struct test* ptest;
typedef struct test {
char name;
int data;
ptest link;
}test;
FILE *fp;
void input(ptest*, ptest*);
int main()
{
char str[20];
ptest head, curr;
int i = 0;
fp = fopen("test.txt", "r");
fscanf(fp, "%s\n", str);
//head = (ptest)malloc(sizeof(ptest));
//head->link = NULL;
while (!feof(fp))
{
input(&head, &curr);
i++;
}
return 0;
}
void input(ptest *head, ptest *curr)
{
static int i = 0;
ptest temp;
temp=(ptest)malloc(sizeof(ptest));
temp->link = NULL;
fscanf(fp, "%c %d\n", &(temp->name), &(temp->data));
if (i==0)
{
*head = temp;
*curr = temp;
i++;
}
else
{
(*curr)->link = temp;
*curr = (*curr)->link;
}
}Forums:


이런 짓을 했기 때문이지요:
이런 짓을 했기 때문이지요:
이런 실수를 저지르는 사람을 한두 번 본 게 아닙니다. 프로그래머에게 비슷한 걸 두 번 이상 타이핑하게 만드는 모든 언어적 요소는 거의 반드시라고 해도 좋을 정도로 문제를 일으키는 것 같군요.
댓글 달기