1
client removeClient (client cList,int pos)
{
int i,data;
data=cList[0];  **
pos=pos-1;
for (i=0;i<pos;i++)
{
    cList[i]=cList[i+1]; **
}
return data;

}/* end module*/

私のコードのこのセクションに少し問題があります。**-> これらの行で、次のエラーが表示されます...添え字付きの値は、配列でもポインターでもベクトルでもありません。どういう意味ですか?

4

2 に答える 2

3

スカラー値を渡しています。ポインターを渡すと役立ちます

client removeClient (client* cList,int pos){ }

このようにして、配列を関数に渡すことができます。

を使用して関数を呼び出します

client result = removeClient(clientQueue, index);
于 2013-04-04T19:23:51.643 に答える
1

@bash.dの回答にいくつかの追加ポイントを追加するだけです:

前の質問からわかるように、クライアントの配列から最初の要素 (クライアント) を削除することは真実です。

client removeClient (client* cList,int pos)
{
 int i;
 client data=cList[0];  // data is client type
 pos=pos-1;
 for (i=0;i<pos;i++)
 {
    cList[i]=cList[i+1]; 
 }
 return data;
}

dataそれは int ではなくクライアント型であることを覚えておいて ください (コメントを読んでください) そして、この関数を main のように呼び出す必要があります:

client date;
data = removeClient ( clientQueue,pos);
于 2013-04-04T19:36:45.177 に答える