問題タブ [calloc]

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 投票する
2 に答える
289 参照

c++ - C++ 文字列 char** 変換

char** を使用して n 個の文字列の配列を作成するにはどうすればよいですか?

これが道ですか?もしそうなら、どうすれば要素にアクセスできますか? 私の配列に次の要素が含まれるとしましょう: aaab、abba、baab;

私はこの構造が欲しい:

どうやって宣言したの?

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

objective-c - Objective-C で構造体の配列を初期化する

私はこれについてしばらく読んでいますが、良い答えが見つかったかどうかはわかりません。

92 個の構造体の配列をセットアップしようとしています。これは固定長であり、事実上ルックアップ テーブルであるため変更されません。callocこれを行う最善の方法は、最初にメモリを割り当ててからデータをロードすることだと思いました。

callocしかし、いくつか読んだ後、多くの人がこれなしで、またはmallocこのように直接メモリを割り当てているのを見ます

私の最初の質問は、メモリを動的に割り当てる方が良いかどうかです。私の理解では、これがより良い解決策でした。特に、データが常に使用されるとは限らない場合。

2 番目の質問は、データの初期化に関するものです。を使用して構造体を初期化できることを読んだことがあります... = {....};が、コンパイラはそれを受け入れていません。

これが私がこれまでに持っているコードです:

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

c - C動的メモリ割り当て-ファイルからデータを読み取る

Cアプリケーションで使用するためにMATLABからload()関数を複製する作業をしています。データを動的にロードし、必要な配列を初期化するのに問題があります。具体的には、callocで初期化された配列でfgetsを使用しようとしていますが、動作させることができません。機能は以下の通りです、そして助けはありがたいです。

編集:更新されたコードは、次の欠陥のある例の下にあります。

改訂されたコード:このソリューションは、同様の問題を見ている人なら誰でも機能します。

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

c - リンク リスト ノード内の文字列にメモリを動的に割り当てる

私はVisual Studio 2010を使用していますが、これにはいくつかの特異性があることがわかっています。そうではないことを願っています。

これは明らかにより大きなプログラムの一部ですが、何をしているのかを理解できるように単純化しようとしました。

実行するたびに、calloc 割り当てが NULL として解決され、プログラムを終了します。calloc の周りに if ステートメントを付けずに試してみたところ、デバッグ エラーが発生したので、calloc が問題であると確信しています。

どんな助けでも大歓迎です。

0 投票する
2 に答える
1394 参照

c - MPI、calloc、および無料:

私はCとMPIを学ぼうとしています。このプログラムは、n個のfloatの合計を計算します。しかし、私にはエラーがあります:

/home/xx/PRIMO/primo.exe:free():無効な次のサイズ(高速):0x000000000109bda0 /home/xx/PRIMO/primo.exe:free():無効な次のサイズ(高速):0x00000000024fada0

どちらを向いたらいいのかわからない2日です。ここにプログラム:

0 投票する
2 に答える
5870 参照

c - memsetが続くcallocとmallocの違いは何ですか?

重複の可能性: malloc とcalloc
の c の違い

memsetが続くcallocとmallocの違いは何ですか? calloc へのすべての呼び出しを malloc の後に memset に置き換えた場合、同じになりますか?

その場合、malloc と calloc の 2 つの関数が別々に提供されているのはなぜですか?

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

c - CFDソルバーFluentのUDF(Cコード)書き込みに関するセグメント違反の問題

ユーザー定義関数(UDF)は、プログラムが可能で、CFDソフトウェアFluent Solverとともに動的にロードして、標準機能を拡張できる関数です。UDFはCプログラミング言語で書かれています。

以下は私のUDFのセクションです。

Windows32ビットでVC++を使用してコンパイルする上記のコードに問題はありません。しかし、Windows64ビットおよびLinux32/64ビット(GCCを使用)では、次のエラーが発生します。

この問題を解決するのを手伝ってくれる人はいますか?

0 投票する
2 に答える
2411 参照

c - callocを使用したCセグメンテーション違反

これらの2行は私にセグメンテーション違反を与えており、私はそれを理解できません:

それでおしまい。私がこれを理解する方法は、5 intsに等しいメモリを要求し、メモリアドレスを返すことです。入力が指す値にメモリアドレスを格納します。私は何が欠けていますか?

0 投票する
2 に答える
6579 参照

c - 2D文字配列mallocまたはcallocを割り当てます

私は最近、Cの知識を磨くことに決めました(私が残した知識はほとんどありません)。曇った最初のスキルはメモリ管理であることにすぐに気づきました。くそー。

私は、やるべき最善のことは、無意味なポインターの練習を書くことだと決めました。1つ目は、それぞれが可変長の4つのchar配列の配列を割り当てることでした。

そのコードの簡略化されたバージョン:

これは不格好で直感に反していると感じました。今日、私は私の古いネミシスを思い出しました:calloc。それから私は書いた

そしてループ内:

私は次のように最後の行を書くコード例を見つけました:

質問1:違いは何ですか?

質問2:文字列の配列を割り当てる別の方法はありませんか?私が今コードを見ると、最初に4つのポインターを1つのcharポインターに割り当て、次に各ポインターに必要な実際のサイズを割り当てているように感じます。それはただ間違っていると感じます。

それからまた、私はこれらすべてについて間違っているかもしれません、その場合:壁に頭をぶつけて、あなたの時間を無駄にする前に私が読むべきまともなマニュアルの方向に私を向けてください...

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

c - 私の記憶の限界をテストしてくれたMalloc、Calloc

システムのメモリ量をテストするACプログラムを作成しようとしています。さまざまな条件下で実行することを計画しています。

  1. スワップを有効にした場合
  2. スワップを無効にし、オーバーコミット(/ proc / sys / vm / overcommit_memory)をfalseに設定
  3. スワップを無効にし、オーバーコミット(/ proc / sys / vm / overcommit_memory)をtrueに設定
  4. システム上で実行されている仮想マシンの内部

これは、システムの実メモリと仮想メモリの制限でメモリ割り当てがどのように動作するかを知るために行っています。

私はこれを4GBのRAMと8GBのスワップを備えたマシンで実行しています。

私が現在持っているものは次のようなものです:

私はこれが40mbのブロックを割り当て続けることを望んでいました(私のシステムではsizeof(int)は4です)。Callocはメモリをゼロに初期化します。使用可能なメモリがなくなると、プログラムが終了し、メモリが解放されます。

私がそれを実行するとき、それは私の記憶の限界を超えて実行し続けます。「5707960メガバイトを割り当てようとしています」という行を印刷しているときに、最終的に停止しました。(約6000 GBのメモリを示します。)

誰かが私がどこで間違っているのか理解できますか?

この方法で割り当てる場合は、ページファイルサイズを考慮する必要があることを指摘してくれた@BlankXavierに感謝します。

次のようにコードを変更しました。

そして今、それは印刷を爆撃します:

「11800Mバイトを割り当てようとしています」

これは私が4GBのRAMと8GBのスワップで期待するものです。ちなみに、ディスクにスワップしているため、4GB以降は印刷速度が大幅に低下します。