1

データ構造を操作する方法にこだわっています。

このように宣言するヘッダーファイルがあります

struct item{
 int    i;  
 char   str[88];
};

9 つの構造体アイテムを作成するCファイルがあります (グローバル変数として宣言し、既にヘッダー ファイルをインクルードしています)。

struct item a[9];

しかし、必要なデータを入れたいとき

foo()

    {
    ...
      // let's say I have data int in index and char[] in string
      // and I want it to put at item_index

      a[item_index].i = index;
      a[item_index].str = string;
    ...
    }

しかし、コンパイルしようとすると、常に表示されるようです

error: expected an identifiler
4

2 に答える 2

5
a[item_index].str = string;

この行は、期待どおりに動作しません。strcpy()文字列をコピーするには、次を使用する必要があります。

strcpy(a[item_index].str, string)
于 2013-10-25T16:26:06.357 に答える
0

配列名は変更不可 (読み取り専用) の変数、または定数と言えます。

この声明では:

a[item_index].str = string;

配列を変更しようとしましたstrが、許可されていません。

各インデックスに値を 1 つずつ割り当てることができます (これは によって行われますstrcpy)。
または、配列の代わりにポインターを宣言して*strから、必要なアドレスを割り当てます。

于 2013-10-25T16:41:06.587 に答える