Data Structures2015.03.08 22:02
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct     student {
    char    name[20+1];
    int        year;
    float    score;
};
 
void main(int arc, char **argv) {
    int    *ptr_int = NULL;
    int **pptr_int_array = NULL;
    int i = 0, j = 0;
    int row = 3;
    int col = 4;
    int value = 0;
    struct student student_lee;
    struct student *ptr_student = NULL;
    struct student *ptr_student_new = NULL;
 
    ptr_int = (int *) malloc(sizeof(int* 100);
    if (ptr_int != NULL) {
        printf("메모리 할당에 성공하였습니다\n");
 
        memset(ptr_int, 0sizeof(int* 100);
 
        free(ptr_int);
    }
 
    pptr_int_array = (int **) malloc(sizeof(int** row);
    memset(pptr_int_array, 0sizeof(int** row);
 
    for(i = 0; i < row; i++) {
        pptr_int_array[i] = (int *) malloc(sizeof(int* col);
        memset(pptr_int_array[i], 0sizeof(int* col);
    }
 
    for(i = 0; i < row; i++) {
        for(j = 0; j < col; j++) {
            value++;
            pptr_int_array[i][j] = value;
        }
    }
 
    for(i = 0; i < row; i++) {
        for(j = 0; j < col; j++) {
            printf("%d\t"*(*(pptr_int_array + i) + j) );
        }
        printf("\n");
    }
 
    for(i = 0; i < row; i++) {
        free(pptr_int_array[i]);
    }
    free(pptr_int_array);
 
    ptr_student = &student_lee;
    strcpy(ptr_student->name, "lee");
    ptr_student->score = 80.1f;
    ptr_student->year = 2005;
 
    printf("%s, %f, %d\n", student_lee.name, 
                            student_lee.score, 
                            student_lee.year);
 
    ptr_student_new = (struct student*) malloc(sizeof(struct student) * 1);
    if (ptr_student_new != NULL) {
        strcpy((*ptr_student_new).name, "new");
        (*ptr_student_new).score = 99.9f;
        (*ptr_student_new).year = 2010;
 
        printf("%s, %f, %d\n", ptr_student_new->name, 
                            ptr_student_new->score, 
                            ptr_student_new->year);
 
        free(ptr_student_new);
    }
}
 
cs
저작자 표시
신고

'Data Structures' 카테고리의 다른 글

Ch03_02 - 단순 연결 리스트  (0) 2015.04.05
Ch03_01 - 배열리스트  (0) 2015.04.05
Ch2_06.c  (0) 2015.03.08
Ch2_05.c  (0) 2015.03.08
Ch2_04.c  (0) 2015.03.08
Ch2_03.c  (0) 2015.03.08
Posted by 곰대생
Data Structures2015.03.08 22:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
#include <stdio.h>
#include <string.h>
 
void main(int arc, char **argv) {
    int size = 0;
    
    int    int_value = 100;
    int    *ptr_int = NULL;
    int    **pptr_int = NULL;
 
    float    float_value = 5.23f;
    float    *ptr_float = & float_value;
 
    char char_value_A = 'A';
    char char_value_B = 'B';
    char *ptr_char = NULL;
 
    ptr_int = &int_value;
    printf("변수 int_value의 값: %d\n", int_value);
    printf("포인터 변수 ptr_int의 값: %x\n", ptr_int);
    printf("포인터 변수 ptr_int가 가리키는 주소의 값: %d\n"*ptr_int);
 
    printf("변수 float_value의 값: %f\n", float_value);
    printf("포인터 변수 ptr_float의 값: %x\n", ptr_float);
    printf("포인터 변수 ptr_float가 가리키는 주소의 값: %f\n"*ptr_float);
 
    ptr_char = &char_value_A;
    printf("변수 char_value_A의 값: %c\n", char_value_A);
    printf("변수 char_value_B의 값: %c\n", char_value_B);
    printf("포인터 변수 ptr_char의 값: %x\n", ptr_char);
    printf("포인터 변수 ptr_char가 가리키는 주소의 값: %c\n"*ptr_char);
 
    *ptr_char = char_value_B;
    printf("변수 char_value_A의 값: %c\n", char_value_A);
    printf("변수 char_value_B의 값: %c\n", char_value_B);
    printf("포인터 변수 ptr_char의 값: %x\n", ptr_char);
    printf("포인터 변수 ptr_char가 가리키는 주소의 값: %c\n"*ptr_char);
 
    char_value_A = 'A';
    char_value_B = 'B';
    ptr_char = &char_value_A;
    char_value_B = *ptr_char;
    printf("변수 char_value_A의 값: %c\n", char_value_A);
    printf("변수 char_value_B의 값: %c\n", char_value_B);
    printf("포인터 변수 ptr_char의 값: %x\n", ptr_char);
    printf("포인터 변수 ptr_char가 가리키는 주소의 값: %c\n"*ptr_char);
 
    pptr_int = &ptr_int;
    printf("변수 int_value의 값: %d\n", int_value);
    printf("포인터 변수 ptr_int의 값: %x\n", ptr_int);
    printf("포인터 변수 ptr_int가 가리키는 주소의 값: %d\n"*ptr_int);
    printf("더블 포인터 변수 pptr_int의 값: %x\n", pptr_int);
    printf("더블 포인터 변수 pptr_int가 가리키는 주소의 값: %x\n"*pptr_int);
    printf("더블 포인터 변수 pptr_int가 가리키는 주소가 가리키는 값: %d\n"**pptr_int);
}
 
cs
저작자 표시
신고

'Data Structures' 카테고리의 다른 글

Ch03_01 - 배열리스트  (0) 2015.04.05
Ch2_06.c  (0) 2015.03.08
Ch2_05.c  (0) 2015.03.08
Ch2_04.c  (0) 2015.03.08
Ch2_03.c  (0) 2015.03.08
Ch2_02.c  (0) 2015.03.08
Posted by 곰대생
Data Structures2015.03.08 22:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
#include <stdio.h>
#include <string.h>
 
struct     student {
    char    name[20+1];
    int        year;
    float    score;
};
 
void main(int arc, char **argv) {
    int size = 0;
 
    struct student    student_hong = {"hong"200995.5};
 
    struct student    student_lee = {0, };
    strcpy(student_lee.name, "lee");
    student_lee.year = 2009;
    student_lee.score = 95.5;
 
    size = sizeof(student_hong);
    printf("구조체 변수 student_hong의 크기: %d\n", size);
    printf("student_hong의 name: %s\n", student_hong.name);
    printf("student_hong의 year: %d\n", student_hong.year);
    printf("student_hong의 score: %f\n", student_hong.score);
 
    printf("student_lee의 name: %s\n", student_lee.name);
    printf("student_lee의 year: %d\n", student_lee.year);
    printf("student_lee의 score: %f\n", student_lee.score);
}
 
cs
저작자 표시
신고

'Data Structures' 카테고리의 다른 글

Ch2_06.c  (0) 2015.03.08
Ch2_05.c  (0) 2015.03.08
Ch2_04.c  (0) 2015.03.08
Ch2_03.c  (0) 2015.03.08
Ch2_02.c  (0) 2015.03.08
Ch2_01.c  (0) 2015.03.08
Posted by 곰대생