問題タブ [allocation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
6 に答える
2127 参照

c - 別の関数内の Malloc

明らかにポインターを使用して、別の関数内から構造体を割り当てる必要があります。私はこの問題を何時間も見つめ、何百万通りもの方法で解決しようとしました。

これはいくつかのサンプルコードです (非常に単純化されています):

これにより、割り当て呼び出しの前後で同じアドレスが得られます。

おそらく関数内でコピーを作成するためだと思いますが、引数として指定したポインターを実際に操作する方法がわかりません。some_struct の代わりに some_struct * を定義しようとしましたが、うまくいきませんでした。私は試しました:

これは問題なく動作します(割り当て関数も変更する必要があります)が、割り当てに従って宣言を変更することはできず、* argである必要があります。宣言するだけでよい場合は、最も正しいでしょう。 some_struct s.. some_struct * ではありません。割り当て関数の目的は、構造体 (some_struct) を初期化することです。これには、割り当ても含まれます。

言い忘れたことをもう一つ。割り当て関数の戻り値 0 は、一部のステータス メッセージ用に予約されているため、これを使用してアドレスを返すことはできません。

0 投票する
3 に答える
226 参照

c# - 割り当てなしの .NET DB クエリ?

私は C# で書かれたいくつかのライブラリを書き直して、起動が完了すると割り当てがないようにするタスクを与えられました。

30 秒ごとに OdbcConnection を介していくつかの DB クエリを実行する 1 つのプロジェクトにたどり着きました。私はいつも、OdbcDataReader を作成する .ExecuteReader() を使用してきました。独自の OdbcDataReader を再利用できるパターン (SocketAsyncEventArgs ソケット パターンなど) はありますか? または、割り当てを回避する他の賢い方法はありますか?

作業中のすべてのデータベースはOracleベースであり、最後にチェックしたところ、公式のLinq To Oracleプロバイダーがなかったため、わざわざLINQを学ぶことはありませんでした。しかし、Linq でこれを行う方法があれば、サードパーティのものを使用できます。

アップデート:

割り当てなしの要件の理由を明確に指定したとは思いません。重要なスレッドが 1 つ実行されており、フリーズしないことが非常に重要です。これはほぼリアルタイムの取引アプリケーション用であり、一部の Gen 2 コレクションでは最大 100 ミリ秒のフリーズが見られます。(ゲームが C# で同じように書かれているという話も聞いたことがあります)。コンプライアンス チェックを実行し、30 秒ごとに実行するバックグラウンド スレッドが 1 つあります。現在、dbクエリを実行しています。クエリは非常に遅い (すべてのデータを返すのに約 500 ミリ秒) ですが、重要なスレッドに干渉しないため問題ありません。ワーカー スレッドがメモリを割り当てている場合を除き、すべてのスレッドをフリーズさせる GC が発生します。

すべてのライブラリ (これを含む) は、起動後にメモリを割り当てることができないと言われました。私がそれに同意するかどうかにかかわらず、それは小切手に署名する人々からの要件です:)。

さて、明らかに、割り当てなしでこのプロセスにデータを取得する方法があります。別のプロセスをセットアップし、ソケットを使用してこのプロセスに接続できます。新しい .NET 3.5 ソケットは、新しい SocketAsyncEventArgs パターンを使用して、まったく割り当てないように特に最適化されています。(実際、それらを使用して複数のシステムに接続し、それらから GC を確認することはありません。) 次に、ソケットから読み取ってデータを通過する事前に割り当てられたバイト配列を用意し、途中で文字列を割り当てません。(私は .NET の他の形式の IPC に詳しくないので、メモリ マップ ファイルと名前付きパイプが割り当てられるかどうかはわかりません)。

しかし、この no-alloc クエリを手間をかけずに実行するためのより高速な方法があれば、私はそれを好みます。

0 投票する
1 に答える
1612 参照

sqlite - NSString alloc:initWithCStringとstringWithUTF8Stringの違いは何ですか?

これらの2つの方法は(メモリ割り当てに関して)同等だと思いましたが、便利な方法(以下にコメント)を使用して切り替えたときに、デバッガーに「範囲外」と「NSCFString」が表示されていました。より明示的な方法で、私のコードはクラッシュしなくなりました!sqlite3クエリからコンテナに保存されている文字列を取得していることに注意してください。

また、デバッガーで値を確認し、NSLogで出力した場合、それらは正しいように見えましたが、新しいメモリが割り当てられ、値がコピーされたとは思わないことにも注意してください。代わりに、メモリポインタが保存されました-スコープ外になりました-後で参照されます-クラッシュします!

0 投票する
12 に答える
260923 参照

c++ - C++での静的配列と動的配列

C ++の静的配列と動的配列の違いは何ですか?

クラスの割り当てを行う必要がありますが、静的配列は使用せず、動的配列のみを使用するように指示されています。私は本とオンラインを調べましたが、理解していないようです。

静的はコンパイル時に作成され、動的は実行時に作成されると思いましたが、これをメモリ割り当てと間違えている可能性があります。

C ++の静的配列と動的配列の違いを説明できますか?

0 投票する
4 に答える
1353 参照

c# - C#メモリ割り当て

  • C#で新しい演算子を使用すると失敗する可能性がありますか(たとえば、大きなメモリが必要な場合)?-解決済み-
  • そしてそれを発見する方法は?-解決済み-
  • 新しいオペレーターがスローする可能性のある他の障害は何ですか?

ありがとう

0 投票する
3 に答える
430 参照

c++ - 動的に作成された配列

私の仕事は2つの部分で構成されています。まず、100要素のglobbal char配列を作成し、cinを使用してそれにテキストを挿入する必要があります。その後、文字数を計算し、入力したテキストの長さで専用の配列を作成します。私は次の解決策を考えていました:

私はよく考えていますか?

タスクの2番目の部分は、最初のプログラムで、挿入されたすべての単語への動的に作成されたポインターの配列を導入することです。新しい単語を追加すると、前のすべての単語が出力され、次の単語用のスペースがない場合は、inputData配列のサイズを2倍にする必要があります。そして正直に言うと、これは私には少し多すぎます。具体的に単語へのポインタを作成するにはどうすればよいですか?また、コンテンツを失うことなくグローバル配列のサイズを増やすにはどうすればよいですか?一時的な配列で?

0 投票する
8 に答える
11130 参照

c++ - C++ でポインタの割り当てを 2 回以上解除するとどうなりますか?

0 投票する
1 に答える
3742 参照

c++ - Linux の HeapCreate、HeapAlloc、Linux のプライベート アロケータ

Windows では、非常に要求の厳しいアプリケーションの場合、プログラマーは、メモリの割り当てをより適切に管理および制御するために、HeapCreate、HeapAlloc を使用して高速化することができます (プライベート アロケーターとも呼ばれます)。Linux c++ プログラミングで同等のものは何ですか?

0 投票する
3 に答える
1216 参照

c++ - C++での動的スタック割り当て

スタックにメモリを割り当てたい。

_alloca / allocaを聞いたことがありますが、これらはコンパイラ固有のものであり、私は好きではないことを理解しています。

だから、私は自分自身の解決策を思いついた(それはそれ自身の欠陥があるかもしれない)そして私はあなたにそれをレビュー/改善して欲しいので、私たちはこのコードを機能させるでしょう:

VC9でコンパイル。

そこにはどんな欠陥がありますか?たとえば、ESPから差し引くことが「あらゆる種類のCPU」の解決策であるかどうかはわかりません。また、コメントアウトしたマクロを動作させたいのですが、どういうわけか動作しません。

0 投票する
5 に答える
11575 参照

c# - c#で動的割り当てを使用してクラスオブジェクトの配列を作成する方法は?

x という名前のクラスを作成しました。動的割り当てを使用して配列を作成したい

しかし、それは私にそのエラーを与えます

タイプ 'ObjAssig4.x' を 'ObjAssig4.x[]' に暗黙的に変換することはできません

私はそれがダンプの質問であることを知っていますが、私は初心者です

ありがとう