Не вводит или выводит данные (список)

Vla00

Необходимо сделать двунаправленый список. Вот что я сделал:
#include <stdio.h> 
#include <conio.h> 
#include <stdlib.h> 
 
typedef struct Node{ 
 int number; 
 char *data; 
 int summa; 
 char *fio; 
 struct Node *next, *prev; 
}NODE; 
 
typedef NODE *PNODE; 
 
void Add_list(PNODE *, PNODE *); 
void Print(PNODE h); 
 
int main() 
{ 
 PNODE head = NULL; 
 PNODE tail = NULL; 
 Add_list(&head, &tail); 
 Print(head); 
 system("PAUSE"); 
 return 0; 
}; 
 
void Add_list(PNODE *h, PNODE *t){ 
 PNODE NewNode; 
 int a; 
 char b[10]; 
 int c; 
 char d[20]; 
 NewNode =(struct Node*) malloc(sizeof(NODE)); 
 printf("Vvedite number nakladnoi: \n"); 
 scanf("%i", &a); 
 NewNode->number = a; 
 printf("Vvedite datu: \n"); 
 scanf("%s",&b); 
 NewNode->data = b; 
 printf("Vvedite summu: \n"); 
 scanf("%i", &c); 
 NewNode->summa = c; 
 printf("Vvedite FIO: \n"); 
 scanf("%s", &d); 
 NewNode->fio = d; 
 NewNode->next = NULL; 
 NewNode->prev = NULL; 
 
 if ((*h) ==NULL){ 
*t =NewNode; 
*h = NewNode; 
} 
else { 
(*t)->next = NewNode; 
NewNode->prev = *t; 
 *t = NewNode; 
 } 
} 
 
void Print(PNODE h){ 
 PNODE CurNode = h; 
 while (CurNode !=NULL){ 
 printf (" Print a list\n"); 
 printf ("---------------------------------------------------------------------------\n"); 
 printf ("| Number | Data | Summa | FIO |\n"); 
 printf ("---------------------------------------------------------------------------\n"); 
 printf ("|%i",CurNode->number); 
 printf("|%s|",CurNode->data); 
 printf ("%i|",CurNode->summa); 
 printf("%s",CurNode->fio); 
 CurNode = CurNode->next; 
 } 
}
Но почему то он типы char не вводит или невыводит. Помогите исправить...
1 ответ

Vla00

Vla00, Ну правильно char* это всего лишь ссылка на область памяти, а кто эту область памяти за тебя выделять будет?А char b[10]; и char d[20]; у тебя уничтожатся сразу после выполнения Add_list