私は(この例では)配列内で購入するアイテムの名前を含む構造体を作成しようとしています。これは私がやろうとしていることの単なる簡単な例です。 私はこの方法でそれを学んだので値を宣言するためにstrcpyを使用しますが、それがメソッドの中で最高の場合はありません。Cの構造体内でマトリックスが機能しますか?
#include<stdio.h>
#include<string.h>
typedef struct Grocery_list{
char item_name[2];
double item_info[2][2];
}Grocery;
int main(){
Grocery market;
strcpy(market.item_name[0], "Apple");
strcpy(market.item_name[1], "Sugar");
strcpy(market.item_info[0][0],200); //apple weight
strcpy(market.item_info[1][0], 3); //apple price
strcpy(market.item_info[0][1], 300);
strcpy(market.item_info[1][1], 4);
printf("%f \n",martket.item_info[1][1]);
return 0;}
エラーが
明らかteste.C: In function ‘int main()’:
teste.C:14:27: error: invalid conversion from ‘char’ to ‘char*’ [-fpermissive]
strcpy(market.item_name[0], "Apple");
^
In file included from teste.C:2:0:
/usr/include/string.h:129:14: error: initializing argument 1 of ‘char* strcpy(char*, const char*)’ [-fpermissive]
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
^
teste.C:15:27: error: invalid conversion from ‘char’ to ‘char*’ [-fpermissive]
strcpy(market.item_name[1], "Sugar");
^
In file included from teste.C:2:0:
/usr/include/string.h:129:14: error: initializing argument 1 of ‘char* strcpy(char*, const char*)’ [-fpermissive]
extern char *strcpy (char *__restrict __dest, const char *__restrict __src)
^
teste.C:16:35: error: cannot convert ‘double’ to ‘char*’ for argument ‘1’ to ‘char* strcpy(char*, const char*)’
strcpy(market.item_info[0][0],200);
^
teste.C:17:34: error: cannot convert ‘double’ to ‘char*’ for argument ‘1’ to ‘char* strcpy(char*, const char*)’
strcpy(market.item_info[1][0], 3);
^
teste.C:18:36: error: cannot convert ‘double’ to ‘char*’ for argument ‘1’ to ‘char* strcpy(char*, const char*)’
strcpy(market.item_info[0][1], 300);
^
teste.C:19:34: error: cannot convert ‘double’ to ‘char*’ for argument ‘1’ to ‘char* strcpy(char*, const char*)’
strcpy(market.item_info[1][1], 4);
^
teste.C:21:16: error: ‘martket’ was not declared in this scope
printf("%f \n",martket.item_info[1][1]);
^
あり、私はGoogleでの回答や解決策を探したが、私が試したすべてのものは、単に他のエラーの原因となったりしても同じ。私は一般的にプログラミングで新しいので、私はそれらのエラーの意味を知らない。
は、メンバーitem_name
が、それは文字列の配列文字の配列ではありませんが、それだけですべての文字列を持っていることを覚えて、単一の文字を保持することができますちょうど単一の文字列(だ、事前に
これは構造体とは関係ありません。あなたは文字列と 'strcpy'を完全に間違って使用しています。 – user2357112
'strcpy'はコピー用です**文字列**。 –
'market.item_name [0]'は文字です。 'strcpy'は' char * 'や' char [] '(おそらく不正確かもしれません)型のバッファにコピーするバッファを必要とします。 – nbro