링크 된 목록을 만드는 데 문제가 있습니다. 코드에서 오류가있는 위치를 모르겠습니다. 도와 주실 수 있습니까? 코드는 다음과 같습니다.단일 링크 된 목록을 만들 수 없습니다.
#include <stdio.h>
#include <stdlib.h>
#define LENGTH 255
struct node {
int info;
struct node *next;
} *head = NULL;
int create(FILE **data){
char read[LENGTH];
printf("Write data file name: ");
scanf("%s", read);
*data = fopen (read, "r");
if (data == NULL) {
printf("Error reading given file.");
}
return 0;
}
int put_Symbols_into_list(FILE *data) {
struct node *new_node, *current;
char c;
printf("Data given: ");
while (!feof(data)){
new_node = (struct node*)malloc(sizeof (struct node));
c = fscanf(data, "%s", &new_node -> info);
printf("%s ", &new_node -> info);
if (head == NULL){
head = new_node;
current = new_node;
} else {
current -> next = new_node;
current = new_node;
}
}
}
int main() {
FILE *data;
struct node *n;
create(&data);
put_Symbols_into_list(data);
//display_List(n);
return 0;
}
내가 수행하는 단계 : 문자열에 대한 데이터 파일을 읽고 새 노드를 넣습니다. HEAD 노드에 데이터가 없으면 읽은 데이터를 그 안에 넣습니다. 그렇지 않으면 새로운 노드에 놓습니다. 데이터 파일에 데이터가 남아 있지 않을 때까지이 작업을 반복하십시오. 1 0 1 1 2 3 4 5 6
과 같이 새 데이터 파일을 만들고 거기에 데이터를 넣을 수 있습니다.
어디서 문제가 발생합니까? –
C에서'malloc'을 형변환하지 마십시오. 디버거에서 프로그램을 단계별로 실행 해 보았습니까? – crashmstr
'int '에'% d'사용 – BLUEPIXY