我有以下结构:
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;
}
最佳答案
一方面,您需要为该结构分配存储...现在您只有一个指针。在循环的顶部,您应该执行以下操作:
allClients[i] = malloc(sizeof(clientDetails));
自从我在“C”中完成结构已经有一段时间了,但是您也可以/应该typedef
您的结构。
关于c - 如何初始化指向结构的指针数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46622302/