我有以下结构:
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;
}
答案 0 :(得分:2)
首先,你需要为该结构分配存储...现在你只有一个指针。在循环的顶部,您应该执行以下操作:
allClients[i] = malloc(sizeof(clientDetails));
自从我在“C”中完成结构以来已经有一段时间了,但你可能/应该typedef
你的结构。