エラー、バグ、質問 - ページ 1336

 

24バイトだから全部問題なのか? すみません、電卓でMTソフトを書こうとしているのでしょうか :)?

もちろん、申し訳ないのですが、問題を指から吸い出すことで、開発者の代表がほとんど気づかない、他の人の質問を封じているのです。

 
Alexey Navoykov:

デストラクタが最適化されていないために、8バイトも余計に保存しなければならないとは......。

まあ、そこがどう実装されているのかがわからないだけなんですけどね。例えば、オブジェクトの配列があった場合。

各要素のリファレンス(ポインタ)はシステム内に保存されているか?

しかし、構造体へのポインタを取ることができないので、それを利用する利便性が低下します。 そのため、時には苦しい選択をしなければならないのです... 何とかクラスサイズを 小さくできれば、素晴らしいことです。 そして、構造体へのポインタもあれば、すべてうまくいきます)。

new演算子を使って動的にオブジェクトを作成すれば、空のオブジェクトを作成する必要は全くありません。

構造体をポインタで参照することはできませんが、例えば OrderSend(MqlTradeRequest& request, MqlTradeResult& result) のように参照渡しすることは可能です - ほとんどの場合、これで十分でしょう。

 
Konstantin Karpov:

24バイトだから全部問題なのか? すみません、電卓でMTソフトを書こうとしているのでしょうか :)?

もちろん、申し訳ないのですが、問題を指から吸い出すことで、開発者の代表がほとんど気づかない、他の人の質問を封じているのです。

まず手始めに配列とは何かを学びます。
 
Alexey Navoykov:
手始めに配列を勉強した方がいい。

まあ、数年前に勉強したんですけどね :) クラスオブジェクトを配列に入れ、ポインタのリストを作って「ヒープ」にクラスオブジェクトを作れば、new演算子については正しくアドバイスされましたが.........。

私の持っているデータはすべて大きく、最初はクラスオブジェクトで処理され、「ヒープ」に位置しています。PCのメモリは8ギガバイトで、このメモリがいかに容量いっぱいに使われているかがわかります。かつて私がアルゴリズムでミスをしてメモリリークしたときも、メモリは95%までいっぱいになり、その後OS自身がすべてを掃除し始めるのです。

だから、おこちゃまを演じずに、その言語の すべての機能に目を通せば、きっと成功するはずです :)

 
Vasiliy Sokolov:

new演算子を使って動的にオブジェクトを作成すれば、空のオブジェクトを作成する必要は全くありません。

構造体はポインタで参照することはできませんが、例えば OrderSend(MqlTradeRequest& request, MqlTradeResult& result) のように参照渡しすることは可能です - 大半の場合これで十分です。

このアドバイスに何の意味があるのでしょうか? 一行だけ読んで早速何か書いているようですが。 クラスのサイズの話をしています。 このサイズはオブジェクトの生成方法、静的か動的かには関係ありません。そして「空のオブジェクトを作る」......意味がわかりません。 そして関数に引数を 渡すというのも、ここでは絶対にNGです。 私たちが、関数にオブジェクトが渡される仕組みを知らない小さな子供だと思っているのでしょうか?

 
Konstantin Karpov:

まあ、数年前に勉強したんですけどね :) クラスオブジェクトを配列に入れ、ポインタのリストを作って「ヒープ」にクラスオブジェクトを作ると、正しくnew演算子のことを言われましたね...。

私のPCには8ギガのメモリがあり、このメモリを完全に使うことができます。 あるときアルゴリズムを間違えてメモリリークを起こし、メモリが95%まで詰まり、その後OSが勝手にすべてを掃除し始めたこともありました。

だから、おこちゃまを演じずに、言葉の可能 性に目を通せば、すべてわかるようになるはずです :)

また頭のいい人だ・・・電卓から始まって今は8ギガなんて気にしない。 ポインターとヒープについて - あなたの輝かしい知識のポイントは何ですか? ここでポインターとは何かと聞いた人はいますか? それとも一生チャットだけですか?

一般的に、みんな、納得して他のスレッドに投稿してください、お願いします、誰もここであなたのアドバイスを求めてないんです。対話の相手は、具体的には開発者です。

 
Alexey Navoykov:

このアドバイスのポイントは何でしょうか? まるで一行から読んで、何か書くのを待ちきれなかったかのようです。 クラスのサイズについて話しています。 このサイズは、オブジェクトが静的に作られるか、動的に作られるかには関係ありません。そして「空のオブジェクトを作る」......意味がわかりません。 そして関数に引数を 渡すというのも、ここでは絶対にNGです。 私たちが、関数にオブジェクトが渡される仕組みを知らない小さな子どもだと思っているのでしょうか?

いいか、お利口さんよ、まずはメモリ管理された環境でのプログラミングの基礎を学んでこい。"クラスは、たとえ空のクラスであっても、ある種のメタデータを含む "という答えが明確に与えられたんだ。そのサイズと編成は最適です。開発者にコンパイラの書き方や正しいデータの保存の仕方を教えるなんて、何様なんだ!?バイトを節約したければ、C言語かアセンブラで自転車を作ればいいのです。

C言語入門』を読んで、アドバイスしてくれる賢い人がたくさんいるんです。

 
Alexey Navoykov:

電卓に始まり、8ギガにこだわらない。 ポインタとヒープについて、なぜこのような素晴らしい知識をお持ちなのでしょうか? ポインタとは何か、誰か聞いたことがありますか? それとも、ただの世間話ですか?

一般的に、みんな、納得して他のスレッドに殺到するように頼む、誰もここであなたの助言を求めなかった。対話の相手は、具体的には開発者です。

あなたの発言から判断すると、あなたはクラスオブジェクトの 配列を扱うので、その膨大なサイズが端末のメモリを埋め尽くすほどで、恐ろしく遅いはずで、そうでなければ、この質問をすることはないでしょう。データとの付き合い方を戦略的に間違えていて、それについていろいろとアドバイスを受けているのだと思います。

- ヒープにオブジェクト用のメモリを確保することで、端末のメモリを圧迫することはありません。

- 大量の情報をメモリに保持せず、データをディスクにアップロードすることで、クラッシュ時の不慮の損失からデータを保護します。必要に応じて、プログラムでアップロードすることもできます。

そして、アドバイスで自分自身を悪化させることは価値がない、あなたが開発者とだけ通信したい場合は、servicedkがありますが、ここで多くの人がいる:)

 
Renat Fatkhullin:
質問なのですが、ターミナル(MT4、MT5x86、MT5x64)でEAに割り当てられるメモリはどの程度でしょうか?
 

開発者はユーモアがないわけではありません。

ダウンロード」と、右や左にツリーを振るような音ですね。