問題タブ [memset]

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

c - C - 静的に割り当てられた char 配列の memset segfault

静的に割り当てられた文字の配列を使用しようとすると、segfault が発生しますが、memsetを使用して割り当てられた同じ長さの配列では発生しませんmalloc

変数の定義:

関数呼び出し:

関数内で使用します。

私の問題は、関数呼び出しの違い、またはより正確には、「char** != char (*) [n]」状況の不完全な理解にあると思われます。しかし、私はあまりにも長い間これを叩いていて、木から森を見ることができないので、ヒントやアドバイスをいただければ幸いです.

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

c++ - memset は、指定した値の代わりに -1 を配列に入れています。何が起こっているのですか?

配列を出力すると、すべて -1 の配列が得られます。int 'test' を出力すると、正しい値 '1073741823' が得られます

memset を使用するために「cstring」を含めています。私がフォローしているドキュメントは次のとおりです 。 http://www.cplusplus.com/reference/clibrary/cstring/memset/

この結果が得られるのはなぜですか? それは明らかなことかもしれませんが、私には見えません。

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

c - 構造体 c 内の memset 配列

構造内に存在する int の配列を memset しようとしています:

memset() で多くのバリエーションを試しましたが、役に立ちませんでした。数値は 1 に初期化されるのではなく、巨大な値です。

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

c - ポインタオフセットがmemsetで機能しませんか?

プレーンC、Windows7およびHPマシン。

整数の3番目のバイトを0x0に設定したいのですが、同じままです。何か案は?ありがとうございました。

私のマシンでは、intは32ビットです。

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

benchmarking - C ライブラリの文字列とメモリ関数をベンチマークするコードを探しています

C lib メモリと memcpy、memset、strcpy、strcmp などの文字列関数のベンチマークに使用できる既存のコードを探しています。独自のコードを書いているようですか、それとも使用したものについて言及していませんか?

memset と memcpy をテストする cachebench があります。そのようなテストを備えた他の一般的なベンチマークスイートがあるのだろうか? ここで車輪を再発明したくありません。ありがとう。

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

c - memsetとint値を使用して整数配列を初期化する-失敗

CUDAプログラムのホストコードを書いているので、標準のC関数を使用していません。memset関数を使用して整数配列の要素を初期化する際に問題が発生しました。memsetたとえば、整数配列を次のように4つすべてに初期化するために使用できるという印象を受けました。

しかし、これを行うと、各バイトではなく、各バイトintが4に設定されます。

私は最初の整数で4を取得し、次のように言います。

最初の整数で1024、2番目の整数で0を取得します。関数が3番目のパラメーターで指定されたバイト数を4に設定することは理解していmemsetますが、memsetを使用して各整数を各バイトではなく4に設定する方法はありますか?それ以外の場合、forループを使用してスタックしていますか?私のGPUは計算能力が低いので、より多くのC++を使用できる優れたCUDA追加機能にアクセスできません。

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

c - memsetを使用して配列を設定する

私はまだCの初心者ですが、memset機能に問題があります。

char *を関数に渡し、この関数内で配列を作成してから、memsetを使用して各値を設定します。私はdbxを使用して、この変数が関数に入るのを監視してきましたが、memsetを渡すと、何らかの理由で「」に設定されます。

まず、なぜこれが起こるのですか?memsetがchar*が配置されているメモリをリセットしている必要があると思いますか?

次に、各要素を「0」に設定するためのより良い方法はありますか?

これが私のコードです:

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

c++ - テンプレートクラスコンストラクターでmemsetがmemをリークする

このクラス ctor はメモリ リークを起こしています。何が起こっているのかわかりません。どのように私は知っていますか?ctor の 2 行目をコメントアウトすると、リークはなくなります。

単純なことかもしれませんが、私は無知です..

  • 編集して答える - PermanentGuestが言ったように:いいえ。基本型には問題はありません。ただし、Resource_Descriptor の型 T に memset によってコンストラクター (文字列など) にメモリを割り当てる実装がある場合、そのクラスの内部ポインターを NULL にリセットすることになり、そのデストラクタがメモリを削除する機会を拒否します。– PermanentGuest

std::string が問題で、解決しました。

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

c - Cでのmemset関数の複雑さ

私は何人かの友人とコードの一部について話し合っていました。Cでmemset関数を使用することについて話し合いました。これは、サイズNの配列を初期化する場合のこの関数のBig-O表記の順序です。