C语言结构体指针初始化问题。-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

C语言结构体指针初始化问题。

a123456678 2016-06-12 10:04:55 1890
#include "stdio.h"
#include "stdlib.h"

struct Student{
    int age;
};

void Init(struct Student* pStudent)
{
    pStudent = (struct Student*)malloc(sizeof(Student));
} 

int main()
{
    struct Student *pStudent;
    Init(pStudent);
    pStudent->age = 1;
    return 0;
}

这段代码会奔溃,我调试发现指针pStudent没有初始化成功。然后我在Init里面修改pStudent->age的值是没问题的,请大家指点一下

C语言
分享到
取消 提交回答
全部回答(4)
  • 一生有你llx
    2019-07-17 19:33:16

    Init中不会改变指针pStudent本身的值

    0 0
  • nothingfinal
    2019-07-17 19:33:16

    Init中不会改变指针pStudent本身的值

    0 0
  • xumaojun
    2019-07-17 19:33:16

    init函数不应该使用未初始化的指针作为参数

    0 0
  • a123456678
    2019-07-17 19:33:15
    #include "stdio.h"
    #include "stdlib.h"
    
    struct Student{
        int age;
    };
    
    struct Student* Init()
    {
        struct Student* pStudent = (struct Student*)malloc(sizeof(Student));
        return pStudent;
    } 
    
    int main()
    {
        struct Student *pStudent = Init();
        pStudent->age = 1;
        free(pStudent);
        return 0;
    }
    0 0
添加回答

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题