ab.com コミュニティ https://www.activebasic.com/forum/ |
|
Newが異常な動作をする https://www.activebasic.com/forum/viewtopic.php?t=106 |
ページ 1 / 1 |
作成者: | Sinryow [ 2005年6月12日(日) 11:12 ] |
記事の件名: | Newが異常な動作をする |
コード: #N88BASIC Dim r As BytePtr r=New[4] Byte lstrcpy(r, "123") Print MakeStr(r) Delete rこれを実行すると,デバッグ実行ではアクセス違反で止まり,リリースコンパイルで実行すると強制終了となってしまいました。 調査お願いします。 |
作成者: | 山本 [ 2005年6月12日(日) 11:40 ] |
記事の件名: | |
New演算子はクラス以外の型を指定できません。その旨のエラーがでるよう、次回のバージョンアップで修正しますので、ご了承ください。 参照: http://www.discoversoft.net/help_center ... or/New.htm クラス以外の型のメモリ確保を行うときは、従来どおり、malloc(またはcalloc)、freeを利用してください。 なぜNew演算子でクラス以外の型を扱えなくするのかといった疑問が出てくることと思いますが、それには以下のような理由があります。 ・New演算子は内部でcallocを呼び出してオブジェクトのメモリを確保している ・Delete演算子も同様に、内部でfreeを呼び出している ・New演算子を使うとreallocできない ・New演算子でクラス型以外のものを生成できるようにすると、オブジェクトか、通常の型かを見分けるための冗長的なコードを埋め込まなければならない ・様々な型に対してNew演算子を使うより、クラス型に限定したほうがオブジェクトの動きを把握しやすい |
ページ 1 / 1 | 全ての表示時間は UTC+09:00 です |
Powered by phpBB® Forum Software © phpBB Limited https://www.phpbb.com/ |