MODULE double_ptr EXPORTS Main; IMPORT IO, Fmt; TYPE int_ptr = REF INTEGER; int_ptr_ = REF int_ptr; VAR db_ptr : int_ptr_; (* doppelter zeiger *) sg_ptr : int_ptr; (* einfacher zeiger *) BEGIN db_ptr := NEW(int_ptr_); (* speicher fuer zeiger *) db_ptr^ := NEW(int_ptr); (* speicher fuer wert des zeigers *) db_ptr^^ := 5; (* speicherplatz ueber zeiger auf zeiger *) IO.Put(Fmt.Int(db_ptr^^) & "\n"); sg_ptr := NEW(int_ptr); sg_ptr^ := 11; db_ptr^ := sg_ptr; IO.Put(Fmt.Int(db_ptr^^) & " - mit zwischenschritt \n"); END double_ptr.