结构体对象使用malloc初始化时候有办法直接对结构体变量赋值吗?
如果是C++的结构体,可以在构造函数中赋值,比如
struct data
{
int a;
data()
{
a = 1;
}
};
没让你这么干,就老实实的,该怎么赋值就怎么赋值
你动态分配了结构体变量无非是,后面的工作需要对它进行赋值,以及各种运算。
那么,你所说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,后赋值)
希望能帮到你!
我们常见的是直接把结构全部初始化为空,用memset函数来实现,你是要初始化成一些内容的话,有个用法不知道是不是你想要的:
struct ST_Name
{
int iCnt;
char szTemp[128];
...
}
stTest=
{
123,
"asdfgh",
...
}
你用calloc(1,size)吧,可以初始化为0