• 释放结构体数组里面的指针


     1 //定义如下结构体
     2 typedef struct student
     3 {
     4     int id;
     5     char* name;
     6 } student_t;
     7 
     8 int main(){
     9 
    10     //有四种定义形式
    11 
    12     //一、结构体变量
    13     student_t xiaoming; //不需要为结构体分配内存,但是需要对name分配内存
    14     xiaoming.name =(char*)malloc(10);
    15     free(xiaoming.name); //释放成员指针
    16 
    17     //二、结构体指针
    18     student_t *xiaoming=NULL;
    19     xiaoming = (student_t*)malloc(sizeof(student_t));
    20     xiaoming.name =(char*)malloc(10);
    21     free(xiaoming.name); //释放成员指针
    22     free(xiaoming); //释放指针
    23 
    24     //三、结构体数组
    25     student_t xiaoming[3];
    26     for( i = 0; i<3 ; i++ )
    27     {
    28       xiaoming[i].name = (char*)malloc(10); //初始化
    29     }
    30     for( i = 0; i<3 ; i++ )
    31     {
    32       free(xiaoming[i].name); //释放成员指针
    33     }
    34     
    35     //四、结构体数组(第三种的另一种写法)
    36     student_t *xiaoming=NULL;
    37     xiaoming = (student_t*)malloc(sizeof(student_t)*3);
    38     for( i = 0; i<3 ; i++ )
    39     {
    40       xiaoming[i].name = (char*)malloc(10); //初始化
    41     }
    42     for( i = 0; i<3 ; i++ )
    43     {
    44       free(xiaoming[i].name); //释放成员指针
    45     }
    46     free(xiaoming); //释放数组
    47     
    48     return 0;
    49 }
  • 相关阅读:
    Mac基本操作记录
    flutter vscode+第三方安卓模拟器
    git一些基本操作
    获取点击元素的绝对位置
    windows下提交前检测操作
    VGG网络学习
    MySQL数据库中文乱码
    配深度学习环境中的小tips(tensorflow+anaconda+keras+cuda)
    Docker安装指定的anaconda
    yolov1阅读
  • 原文地址:https://www.cnblogs.com/yinguojin/p/10579764.html
Copyright © 2020-2023  润新知