whoami_wang
whoami_wang
2014-12-17 09:31
采纳率: 100%
浏览 2.9k
已采纳

结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗

结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • lx624909677
    lx624909677 2014-12-17 11:27
    已采纳

    如果是C++的结构体,可以在构造函数中赋值,比如
    struct data
    {
    int a;
    data()
    {
    a = 1;
    }
    };

    点赞 评论
  • bdmh
    bdmh 2014-12-17 09:34

    没让你这么干,就老实实的,该怎么赋值就怎么赋值

    点赞 评论
  • u011767611
    Landpack 2014-12-17 09:50

    你动态分配了结构体变量无非是,后面的工作需要对它进行赋值,以及各种运算。
    那么,你所说malloc初始化直接赋值。是指什么样的情况的,难道是像c++中的
    (构造函数)。事实上c++的构造函数在使用前你也需要用

    className mycClass=new className
    

    使用new分配内存的

    #include <iostream>
    using namespace std;
    class className
    {
        public:
        int x;
        int y;
        private:
        int a;
        int b;
    };
    int main(void)
    {
        className * myClass=new className;
        myClass->x=1;
        myClass->y=2;
        cout<<myClass->x<<endl;
        cout<<myClass->y<<endl;
        return 0;
    }
    
    

    而在c里面你使用malloc分配了内存空间,你后面无非是通过指针去访问它!
    怎么,感觉你像是在问,malloc分配内存后,能否自动初始化(而不是初始化malloc,后赋值)
    希望能帮到你!

    点赞 评论
  • PeeNut
    胡涂笔记 2014-12-17 10:36

    我们常见的是直接把结构全部初始化为空,用memset函数来实现,你是要初始化成一些内容的话,有个用法不知道是不是你想要的:
    struct ST_Name
    {
    int iCnt;
    char szTemp[128];
    ...
    }
    stTest=
    {
    123,
    "asdfgh",
    ...
    }

    点赞 评论
  • panziwen86
    潘子文 2014-12-18 06:43

    你用calloc(1,size)吧,可以初始化为0

    点赞 评论

相关推荐