结构体复制与赋值
结构 复制 赋值
2023-09-11 14:15:08 时间
1 #include <stdio.h>
2 #include <string.h>
3 #include <malloc.h>
4
5 int main(int argc, char* argv[])
6 {
7 struct data
8 {
9 int i;
10 char c;
11 int j;
12 int arr[2];
13 };
14
15
16 struct datawptr
17 {
18 int i;
19 char *c;
20 };
21
22 struct datawptr dptr1;
23 struct datawptr dptr2;
24 struct data svar1; // a normal variable of type struct data
25 struct data svar2; // a normal variable of type struct data
26
27 svar1.c = 'a';
28 svar1.i = 1;
29 svar1.j = 2;
30 svar1.arr[0] = 10;
31 svar1.arr[1] = 20;
32
33 svar2 = svar1;
34 printf("Value of second variable \n");
35 printf("Member c = %c\n", svar2.c);
36 printf("Member i = %d\n", svar2.i);
37 printf("Member j = %d\n", svar2.j);
38 printf("Member arr0th = %d\n", svar2.arr[0]);
39 printf("Member arr1st = %d\n", svar2.arr[1]);
40
41 dptr1.i = 10;
42 dptr1.c = (char*)malloc(sizeof(char));
43 *(dptr1.c) = 'c';
44 dptr2.c = (char*)malloc(sizeof(char));
45 dptr2 = dptr1;
46
47 /* But, with
48 the above approach, one needs to be careful when a data structure contains a member of pointer type because the
49 assignment operator simply copies the value; it will also copy the pointer variable’s value, which is nothing but the
50 address of some variable it is pointing to. */
51
52 printf("int member = %d\n", dptr2.i);
53 printf("char ptr member = %c\n", *(dptr2.c));
54
55 return 0;
56 }
57
58 /*
59 Value of second variable
60 Member c = a
61 Member i = 1
62 Member j = 2
63 Member arr0th = 10
64 Member arr1st = 20
65 int member = 10
66 char ptr member = c
67 */
相关文章
- MySQL 复制表结构和表数据
- 表结构中updated_time设计为ON UPDATE CURRENT_TIMESTAMP时,使用过程的一个坑
- 倍福TwinCAT(贝福Beckhoff)基础教程2.2 TwinCAT常见类型使用和转换_结构体
- redis 简单整理——redis 的哈希基本结构和命令[三]
- Power Designer 连接SqlServer 数据库 导出表结构
- Oracle与Sql Server复制表结构及数据
- Oracle与Sql Server复制表结构及数据
- 一个典型的SAP Commerce extension目录结构
- SQL SERVER 不能修改表结构、列类型 解决方法
- Atitit 源码语句解析结构 目录 1.1. 栈帧(stack frame).每个独立的栈帧一般包括:1 1.2. 局部变量表(Local Variable Table)2 2. ref2
- 华为云推UGO:一手抓结构迁移,一手抓SQL转换
- 【Linux 内核 内存管理】物理内存组织结构 ② ( 内存模型 | 平坦内存 | 稀疏内存 | 非连续内存 | 内存管理系统三级结构 | 节点 Node | 区域 Zone | 页 Page )
- ChatGPT上线了!我在2023年1月2日这一天用上了它!请使用c++写一个bert模型结构?
- c++ 结构体
- Linux 系统目录结构
- Linux下CMake简明教程(五)正规一点的组织结构