- ベストアンサー
構造体の纏めの後について……。
BLUEPIXYの回答
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
ABC (*DBase[])[20][20]= { Point1, Point2 }; … printf("%d,%d\n",(*DBase[0])[1][0].Dog,(*DBase[0])[1][0].Cat);
関連するQ&A
- 構造体について
私は今プログラミング(C++)を勉強しているのですが、構造体に苦戦しています。分からないことがいくつかあります。もし知っていたらどれでもいいですので、よろしければ教えてください。 1、たとえば構造体を宣言するときに struct abc{ int s; struct abc xx; struct abc yy; }; と宣言するときがあります。でも上記の例と下記の例との違いが分かりません。 struct abc{ int s; struct abc xx; struct abc yy; }abc; 2、たとえばメインの最初にこのように宣言されているとします。 int j, i; struct abc *kk, *nn, *mm; これはここに宣言したものがローカルで、1のときに宣言したものがグローバルと考えていいのでしょうか? 3、メインの中に次のようなプログラムがあったとします。 kk->xx = j; kk->yy = j; nn->yy = NULL; i = kk->xx; i = kk; これらがそれぞれどのような意味があるのでしょうか。 これらでわかることがあればぜひ教えてください。よろしくお願いいたします。
- ベストアンサー
- C・C++・C#
- C#で構造体の配列を持った構造体を使いたいのですが
C#で構造体の配列を持った構造体を使いたいのですが Cならば struct xyz { struct abc _abc[32]; int index; }; struct abc { int a; int b; int c; }; struct xyz _xyz[8]; xyz[0]._abc[3].b = 1; のような使い方で という感じで やっていた事を C#で 同じような事をやろうとしても うまくいきません うまくやる方法をどなたかご存知ないでしょうか Visual Studio 2005行った場合 コンパイルで 構文エラーです。不適切な配列の宣言子です。マネージ配列を宣言するには、次元指定子を変数の識別子の前に指定します。固定サイズ バッファ フィールドを宣言するには、フィールド型の前に fixed キーワードを使用します となり fixed をつけると 固定サイズ バッファの型は次のうちの 1 つでなければなりません: bool、byte、short、int、long、char、sbyte、ushort、uint、ulong、float または double となってしまいます
- ベストアンサー
- C・C++・C#
- 構造体の構造体配列初期化
typedef strunct _test01 { int a; int b; } test01_t; typedef strunct _test { int c; test01_t sTest01[256]; } test_t; test_t sTest; 上記のような構造体がある場合、sTestのメンバのsTest01をNULL初期化する 方法とsTest01に値が入っていないか(初期化されているか)を判定する方法を 教えていただけませんか? よろしくお願い致します。
- ベストアンサー
- C・C++・C#
- 構造体について
構造体についての質問です。 main関数で構造体に 格納しています。 その構造体の値を 自作の関数(look)で 参照したいのですが どのようにすればいいのか ご教示して頂けたら幸いです。 typedef struct nentbl_ { int tosi; int kan; } nentbl; //--------------------------------------------------- int look(id){ nentbl kihokyu[50]; printf("%d %d\n",kihokyu[id].tosi , kihokyu[id].kan); } //---------------------------------------------------- int main(void){ nentbl kihokyu[50]; ・ ・ ・ kihokyu[1].tosi =11; kihokyu[1].kan = 20; kihokyu[2].tosi = 21; kihokyu[2].kan = 30; kihokyu[3].tosi = 31; kihokyu[3].kan = 40; y = look(1);
- ベストアンサー
- C・C++・C#
- 構造体・ビットフィールドのvolatileに関して。
以下のような構造体があったとする。 -(1) ----------------------------- typedef volatile struct ABC{ char x; char y; }stABC; -(2) ----------------------------- typedef struct ABC{ volatile char x; volatile char y; }stABC; --------------------------------- ■質問 ------------- stABC abc; abc.x // ←volatileは有効? abc.y // ←volatileは有効? ------------- ・このとき、メンバx,y は(1)/(2)の構造体型宣言どちらでも 同じ意味合いになっているのでしょうか。 ※特に(1)の場合、volatileは有効になっているのでしょうか。 ・ビットフィールド時も同じと考えて問題ないでしょうか。 (1)typedef volatile struct ABC{ char x: 1 ; char x: 7 ; }stABC; (2)typedef struct ABC{ volatile char x: 1 ; volatile char x: 7 ; }stABC;
- 締切済み
- C・C++・C#
- 入れ子の構造体について
例えば、入れ子の構造体を1つ使いたい場合、 struct bbb{ int b; }; typedef struct aaa{ struct bbb a; }AAA; AAA dt; と書くと、「dt.a.b = 10」とやれば、値等を設定できると思いますが、 入れ子の構造体を2つ使いたい場合も、同じように書けるのでしょうか? struct ccc{ int c; }; struct bbb{ struct ccc b; }; typedef struct aaa{ struct bbb a; }AAA; AAA dt; dt.a.b.c = 10; と書けるのでしょうか?こんがらがってしまって、どう書いていいのか・・。 2つでも出来るのであれば、コードの書き方を教えて頂けませんか?
- ベストアンサー
- C・C++・C#
- 構造体メンバへの代入
とても初歩的なことなのですが、 typedef struct _X{ int x; }X[50]; と構造体を定義して X[0].x = 0; と0を代入しようとすると、「宣言が正しく終了していない」とエラーが出てしまいます。 これはなぜでしょうか? ちなみにMicrosoft Visual C++ 2005 Express Editionを使っています。
- ベストアンサー
- C・C++・C#
- ヘッダファイルと構造体
typedef struct{ float x; float y; float z; }Point; typedef struct { struct Point p1; struct Point p2; }Rect; とヘッダファイルに入力しコンパイルしてみると struct Point p1; struct Point p2; のPointが未定義の構造体とエラーが出ます。 どのように書けばいいのでしょう??
- ベストアンサー
- C・C++・C#