Я пытаюсь получить целое число любого размера в связанном списке в C. Но когда я печатаю список, нуль печатается всегда после целого числа. Обратите внимание, что я добавляю каждую цифру целого к голове. (Головка имеет 0-й место целого)Печать связанного списка целых чисел в C
#include <stdio.h>
#include <stdlib.h>
struct node
{
int digit;
struct node* next;
};
void get_number(struct node** head);
int create_node(int digit, struct node** head);
void printlist(struct node* head);
int main()
{
struct node* head1 = malloc(sizeof(struct node*));
get_number(&head1);
printlist(head1);
return 0;
}
int create_node(int digit, struct node** head)
{
struct node* tmp = malloc(sizeof(struct node*));
tmp -> digit = digit;
tmp -> next = *head;
*head = tmp;
}
void printlist(struct node* head)
{
struct node* curr = head;
if(!head)
return;
while(curr != NULL)
{
printf("%d",curr -> digit);
curr = curr -> next;
}
}
void get_number(struct node** head)
{
int k;
char c;
c = getchar();
while(c != '\n' && c != ' ')
{
k = c - '0';
create_node(k, head);
c = getchar();
}
}
когда вход 123456, выход 1234560. Я пытался найти решение , но не смог. Пожалуйста, помогите
'структура узла * head1 = таНос (SizeOf (структура узла *));' -> 'структура узла * head1 = таНос (SizeOf (структура узла)); 'или' struct node * head1 = malloc (sizeof (* head1)); 'и' struct node * tmp = malloc (sizeof (struct node *)); '->' struct node * tmp = malloc (sizeof (struct node)); 'или' struct node * tmp = malloc (sizeof (tmp *)); ' –
О, получилось. Благодарю. Очень глупо от меня – pahan
Не забудьте «освободить» выделенную память! –