如何在C函数中访问这个struct数组?

时间:2015-12-31 02:42:11

标签: c arrays pointers struct pass-by-reference

我有一个结构和一系列这样的结构:

typedef struct clientInformation{
    int inUse;
    int socketNumberClient;
    char *portNumber;
    int listeningPort;
    char *clientsName;
    char *clientsIP;
}clientInformation;
clientInformation client[10];

我通过调用这个函数来初始化数组:

void addToList(char *ipaddress,char *p,char *cName,int socketNumber,int clientPortListen){
int i;
    for(i=0;i<10;i++){
        if(client[i].inUse==0){
            client[i].inUse=1;
            client[i].socketNumberClient=socketNumber;
            client[i].listeningPort=clientPortListen;
            client[i].portNumber=p;
            client[i].clientsName=cName;
            client[i].clientsIP=ipaddress;
            break;
        }
    }
}

我从main()函数调用初始化函数函数,使用:

addToList(clientIP,clientPort,clientName,clientSocketNew,clientPortListen);

问题是初始化后我无法访问数组中结构的成员。我不确定成员是否填充。

对于我尝试在main()中打印的实例:

  

的printf( “%d”,客户端[8] .inUse);

它什么都不输出。

1 个答案:

答案 0 :(得分:1)

该问题的评论解释了为什么问题发生以及如何解决问题。总结一下。

为了在输出时刷新stdout,输出结束时需要\n

更改

printf("%d",client[8].inUse);

printf("%d\n",client[8].inUse);