鉴于这种结构:如何初始化C中的结构指针?
struct PipeShm
{
int init;
int flag;
sem_t *mutex;
char * ptr1;
char * ptr2;
int status1;
int status2;
int semaphoreFlag;
};
这工作正常:
static struct PipeShm myPipe = { .init = 0 , .flag = FALSE , .mutex = NULL ,
.ptr1 = NULL , .ptr2 = NULL , .status1 = -10 , .status2 = -10 ,
.semaphoreFlag = FALSE };
但是,当我宣布static struct PipeShm * myPipe
,不工作,我假设我需要与运营商进行初始化->
,但如何?
static struct PipeShm * myPipe = {.init = 0 , .flag = FALSE , .mutex = NULL ,
.ptr1 = NULL , .ptr2 = NULL , .status1 = -10 , .status2 = -10 ,
.semaphoreFlag = FALSE };
是否可以声明一个指向结构的指针并使用它的初始化?
您需要分配内存的指针,以便你可以做任何有意义的事情吧。指针本身只是指向一个随机地址。您需要确保指针指向的地址足够大以容纳结构内容。 – 2012-07-29 14:19:43
我不明白...为什么你需要一个*指针*? – 2012-07-29 14:21:17
查看问题[here](http://stackoverflow.com/questions/2177391/allocating-memory-for-a-structure-in-c)为了声明一个指针,你需要分配内存,所以你的基本要求相同事情。 – rudolph9 2012-07-29 14:23:15