我试图在同一个var rootbject = (RootObject)javaScriptSerializer.Deserialize(text, typeof(RootObject));
中读取一些字符串,但它们似乎没有存储在我希望的位置。
我的功能:
scanf()
例如,当我尝试在typedef struct per {
char *firstname, *lastname, *gender, *phone, *address;
struct per *next, *previous;
} person_t;
person_t head;
person_t tail;
void initialize(person_t *person) {
person->firstname = malloc(20);
person->lastname = malloc(20);
person->gender = malloc(1);
person->phone = malloc(15);
person->lastname = malloc(50);
}
void insert() {
person_t *person = malloc(sizeof(person_t));
person->next = &tail;
person->previous = tail.previous;
tail.previous = person;
(person->previous)->next = person;
initialize(person);
scanf("%s %s %s %s %s", person->firstname, person->lastname,
person->gender, person->phone, person->address); //END WITH ctrl-C
printf("%s", person->firstname);
}
中打印值时,我得到的只是垃圾。我确实为每个指针分配了内存。
我已经阅读了一些关于person->firstname
的内容,看起来并不是那么好,除了我必须在这种情况下使用它。我不明白随之而来的问题 - 关于缓冲区的问题?我读到的所有内容似乎都有些令人困惑。
你认为问题与它正在将值读入scanf
的事实有关吗?我这样说是因为这是我第一次尝试使用它,而且,它没有用。