構造体と実体について

構造体と実体の違いや、Javaに慣れている学生さんに あらためて、データ構造のイメージを持って欲しいので、 以下のコードを示す。

struct Complex {
    double re ;
    double im ;
} ;
struct Complex2 {
    double* pre ;
    double* pim ;
} ;
void main() {
    // メモリ確保失敗のNULLチェックは省略
    struct Complex a ;
    struct Complex* p ;
    struct Complex2 b ;
    struct Complex2* q ;
    a.re = 1.2 ;
    a.im = 2.3 ;

    p = (struct Complex*)malloc( sizeof( struct Complex ) ) ;
    p->re = 1.2 ;
    p->im = 2.3 ;
    // in Java
    // p = new Complex ;
    // p.re = 1.2 ;
    // p.im = 2.3 ;

    b.pre = (double*)malloc( sizeof( double ) ) ;
    *(b.pre) = 1.2 ;
    b.pim = (double*)malloc( sizeof( double ) ) ;
    *(b.pim) = 2.3 ;

    q = (struct Comple2*)malloc( sizeof( struct Complex2 ) ) ;
    q->pre = (double*)malloc( sizeof( double ) ) ;
    *(q->pre) = 1.2 ;
    q->pim = (double*)malloc( sizeof( double ) ) ;
    *(q->pim) = 2.3 ;
}

上記プログラムのメモリの格納イメージ図を以下に示す。

 

2017年1月

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

アーカイブ

Google

このブログ記事について

このページは、T-Saitohが2016年12月19日 09:36に書いたブログ記事です。

ひとつ前のブログ記事は「データベースの課題ER図の作成」です。

次のブログ記事は「マイクロソフトを騙ったメールにご注意ください」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。