This shows you the differences between two versions of the page.
courses:programming:topic11 [2016/11/19 14:25] kkv created |
courses:programming:topic11 [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | === Динамические структуры === | ||
- | <code c++> | ||
- | // Programming 1. Sample at 2016-11-17-14-00.56 | ||
- | #include <stdio.h> | ||
- | #include <stdlib.h> | ||
- | |||
- | struct Person { | ||
- | char name[100]; | ||
- | int age; | ||
- | struct Person *next; | ||
- | }; | ||
- | |||
- | struct Person *data = NULL; | ||
- | |||
- | void generate_data() | ||
- | { | ||
- | data = (struct Person*)malloc(sizeof(struct Person)); | ||
- | struct Person *ptr = data; | ||
- | printf("data = %p\n",data); | ||
- | for(int i=0; i<5; i++) | ||
- | { | ||
- | sprintf(ptr->name,"name-%d",i); | ||
- | ptr->age = 10+i; | ||
- | if( 4 != i ) | ||
- | { | ||
- | ptr->next = (struct Person*)malloc(sizeof(*ptr)); | ||
- | ptr = ptr->next; | ||
- | } else ptr->next = NULL; | ||
- | } | ||
- | } | ||
- | |||
- | void print_data() { | ||
- | struct Person *ptr = data; | ||
- | while(ptr) | ||
- | { | ||
- | printf(" %s, age %d\n",ptr->name, ptr->age); | ||
- | ptr=ptr->next; | ||
- | } | ||
- | } | ||
- | |||
- | int main(/*int c, char **v */) | ||
- | { | ||
- | generate_data(); | ||
- | print_data(); | ||
- | return 0; | ||
- | } | ||
- | |||
- | </code> |