如何初始化指向结构的指针数组?

时间:2017-10-07 16:07:17

标签: c

我有以下结构:

struct clientDetails 
{
    int socket;  
    char* port;
    char* IP;
    char* hostName;
    int msgSentCount;
    int msgRecvCount;
    char* status;
    char bufferMsg[BUFFER_SIZE];
    char blockedUser[4];
    int blockedCount;   
};

我有一系列指针:

struct clientDetails* allClients[4];

如何初始化allClients的所有数组元素以具有默认值?

我尝试过以下操作,但我得到的类型结构的定义不完整':

for(int i = 0; i<4; i++) {
        allClients[i]->socket = 0;  
        allClients[i]->port = NULL;
        allClients[i]->IP = NULL;
        allClients[i]->hostName = NULL;
        allCLients[i]->msgSentCount = 0;
        allClients[i]->msgRecvCount = 0;    
        allClients[i]->status = NULL;
        allClients[i]->bufferMsg = "";
        allClients[i]->blockedUser = {"","","",""};
        allClients[i]->blockedCount = 0;    
}

1 个答案:

答案 0 :(得分:2)

首先,你需要为该结构分配存储...现在你只有一个指针。在循环的顶部,您应该执行以下操作:

allClients[i] = malloc(sizeof(clientDetails));

自从我在“C”中完成结构以来已经有一段时间了,但你可能/应该typedef你的结构。