은 (당신이 주요의 닫는 중괄호를 생략하지 않은 경우) 당신이 주요 내부 기능 add_number
를 정의 것 또한
int main(void)
같이 선언해야한다 . C 표준은 다른 함수 내부에서 함수를 선언 할 수 없습니다.
일반적으로 단일 링크 된 단면 목록이 선언 된 경우 목록의 노드가 처음에 추가됩니다.
다음은 단일 연결 목록의 처음과 끝에 새 노드를 추가하는 방법을 보여주는 데모 프로그램입니다.
#include <stdio.h>
#include <stdlib.h>
typedef struct numbers
{
int number_inserted;
struct numbers *next;
} NUMBERS;
int add_number_front(NUMBERS **numbers, int x )
{
NUMBERS *tmp = malloc(sizeof(NUMBERS));
int success = tmp != NULL;
if (success)
{
tmp->number_inserted = x;
tmp->next = *numbers;
*numbers = tmp;
}
return success;
}
int add_number_back(NUMBERS **numbers, int x )
{
NUMBERS *tmp = malloc(sizeof(NUMBERS));
int success = tmp != NULL;
if (success)
{
tmp->number_inserted = x;
tmp->next = NULL;
while (*numbers != NULL) numbers = &(*numbers)->next;
*numbers = tmp;
}
return success;
}
void display_numbers(NUMBERS **numbers)
{
for (NUMBERS *current = *numbers; current != NULL; current = current->next)
{
printf("%d ", current->number_inserted);
}
}
int main(void)
{
NUMBERS *numbers = NULL;
for (int i = 0; i < 5; i++) add_number_back(&numbers, i);
display_numbers(&numbers);
putchar('\n');
for (int i = 0; i < 5; i++) add_number_front(&numbers, i);
display_numbers(&numbers);
putchar('\n');
return 0;
}
출력 당신은 주요 내부 기능 add_number를 정의
0 1 2 3 4
4 3 2 1 0 0 1 2 3 4
입니다. 표준 C 기능이 아닙니다. –
이미 작은 오류가 수정되었지만 내 주요 문제는 아닙니다. – MoonCoding