ホーム » スタッフ » 斉藤徹 » 講義録 » 情報構造論 » 構造体と実体について

2016年12月
« 11月   1月 »
 123
45678910
11121314151617
18192021222324
25262728293031

最近の投稿(電子情報)

アーカイブ

カテゴリー

構造体と実体について

構造体と実体の違いや、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 ;
}

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