問題タブ [strdup]

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 に答える
227 参照

c - スレッドの問題: ヒープに格納された値

スレッドに問題があります。

グローバル変数、NULL に初期化する char *、およびミューテックスを定義しています。

次に、ミューテックスを初期化します。

次に、新しいスレッドを作成します。

その関数内で、strdup を使用して minURLTime にスペースを割り当て、リンクから文字列をコピーします。

(malloc を呼び出す strdup を介して) ヒープを使用しているため、スレッドが終了するまで minURLTime が NULL にならない理由がわかりませんが、その後は NULL になります。

pthread_exit が呼び出されると、minURLTime は strdup (malloc を呼び出す) によって割り当てられたグローバル変数ですが、NULL のように見えます。わかりません 誰か説明してくれませんか?

どうもありがとうございました、

編集:

もう少し詳しく。

main() から:

ExecuteThread 関数:

fprintf は実行されません (pthread_exit を返す前)。

executeRequest 関数:

これは役に立つかもしれません。スレッドが終了する前に、executeRequest 内では出力されますが、executeThread 内では出力されません。

ジャリー

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

c - strdup使用後にメモリを解放できません

gcc 4.5.1 c89

メモリを解放しようとしています。ただし、valgrindで確認したところ、メモリが解放されていません。私は何が間違っているのか疑問に思っています。

私は次の構造を持っています:

この構造のオブジェクトを作成します。

構造体にメモリを割り当てます。

それにいくつかのデータを割り当てます

次に、割り当てられたすべてのメモリを解放しようとします。

valgrindから次の出力が得られます。

なぜメモリが解放されないのかわかりませんか?

提案をありがとう、

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

g++ - strdup などの関数を明らかにするコンパイラ フラグ

受講しているクラスで完了する必要があるプロジェクトのスターター コードをいくつか受け取りました。コードは大学のコンピューターでは正常にコンパイルされますが、自分のコンピューターでコードをコンパイルしようとすると、関数呼び出し strdup が原因でエラーが発生します。私が収集できることから、これは strdup が ISO c99 関数ではないために発生します ( https://bugzilla.redhat.com/show_bug.cgi?id=130815 )。コードをコンパイルするにはどうすればよいですか? 追加のコンパイラ フラグを投入する必要があるだけだと思いますが、どれがどれかわかりません。私が実行した情報が必要な場合g++ -v、出力は次のとおりです。

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

c - icu unicodeに相当するstrdupはありますか?

質問は自明です。C API を使用しています。

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

gcc - c++0x を使用した g++ での strdup エラー

C++0x コードがいくつかあります。以下で再現できました。以下のコードは問題なく動作-std=c++0xしますが、実際のコードには必要です。

C++0x に strdup を含めるにはどうすればよいですか? gcc 4.5.2 で

私はmingwを使用していることに注意してください。私はcstdlib、cstring、string.hを含めてみて、std::を使ってみました。運がない。

コード:

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

c# - Vb.NetはStrDupをC#.netに変換します

私はこのコード行を持っています:

C#のこのコードに相当するものは何ですか?見つからないようです。

0 投票する
7 に答える
51310 参照

c++ - strdup または _strdup?

Microsoft Visual C++ で使用するstrdupと、次の警告が表示されます。

警告 C4996: 'strdup': この項目の POSIX 名は非推奨です。代わりに、ISO C++ 準拠の名前 _strdup を使用してください。詳細については、オンライン ヘルプを参照してください。

したがって、それ_strdupは正しいようです。

しかし_strdup、GCC (Fedora Linux OS) で使用すると、コンパイラにエラーが表示されます。

エラー: '_strdup' はこのスコープで宣言されていません

GCC と Linux を使用すると、コンパイラは のエラーを表示しませんstrdup

どちらが正しいですstrdup_strdup

注:<string.h>コードに含めます。

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

c - 型キャスト文字列とstrdup

入力const文字列が何らかの方法で変更されている場合(Cコンパイラの警告が発生します)、それを処理するための最良の方法は何ですか?新しい変数に型キャストしてから使用するか、複製して使用してから解放します。または、このタイプのシナリオを処理する他の方法はありますか。提案してください。どんな助けでもいただければ幸いです。

//型キャスト

//複製して無料

編集:それはCコンパイラです。C++ではありません。型キャストで、s2が文字列s1の新しいコピーになるのか、それとも元の文字列s1を指すのかわかりません。

答えてくれてありがとう。もう1つ疑問があります-

上記の割り当ては有効ですか?

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

string - 次のように strdup() を使用すると、C でメモリ リークが発生しますか?

char* XX (char* str) { // 既存の文字列を str で CONCAT し、ユーザーに返す }

そして、私はこのプログラムを次のように呼び出します:

XX ( strdup("CHCHCH") );

これにより、生成されたものを解放せずにリークがstrdup()発生しますか?

free の結果がXX() 仕事をする可能性は低いです。

(C と C++ の両方で教えてください、ありがとう!)

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

c - strdupエラー:'操作は現在進行中です'

エラーはどういう意味ですか?redisコマンドから取得した値を返す必要があります。

これは、デバッガーを使用してゆっくりとステップ実行した場合でも発生します(ブロックアクションは長い間終了していると思われます)。Redis固有のエラー文字列は空です。reply->strには必要な正しい文字列があります。