問題タブ [char-pointer]
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.
c++ - char *str; str="こんにちは"; 文字列にメモリを割り当てずに、どのように機能しますか?
コード:
私はこの出力を得る:
次の2つの疑問があります。
メモリを割り当てずに文字列を保存するにはどうすればよいですか。
str
は文字ポインタであり、 where char variable を指していますi
。追加するとき、割り当てられていないその場所からのバイトstr = "Hello";
を使用していませんか?5
4
以来、私はそれらを印刷するときに同じ値を持つ
str = &i;
べきではstr
ありませんか?記載を&i
除いた場合も同様です。そして、とが同じである場合、上書きする必要があり、残りは後続のバイトに入ると言ったときに信じます。str = "Hello";
str
&i
str
&i
str = "Hello"
'a'
'H'
'ello\0'
全体の問題は
str = "Hello"
ステートメントにあると思います。思ったようにうまくいかないようです。
誰かがそれがどのように機能するか説明してください??
c - C: char ポインターの配列が動的に期待どおりに機能しない
char *
私は、標準入力からの文字列を保持するために動的に割り当てられた配列を使用しようとしている私のコードから以下のスニペットを持っています。
一時的な静的配列を使用して最初に から文字列を格納しstdin
、次に特定の条件に基づいて の配列にコピーしますchar *
。実行時に個々にメモリを割り当てchar *
ています。
sono_of_ref
は、最終的に受信した文字列の総数を保持します。例 20.しかし、配列全体reference
を出力して各文字列を表示すると、最後に来たのと同じ文字列が得られ、20回出力されます。
c - c 関数が機能しない
したがって、次のコードでテストするときに、segfaulting で実装した次の c 関数:
そして、これは char ポインターを返すメソッドです = "$s2, 0($s3):
c - scanfから取得した引数で文字ポインタの配列を埋める方法は?
C で非常に基本的なシェル プログラムを作成しようとしています。直面している問題は、文字ポインターの argv 配列を入力から取得した単語で埋めようとすることです。以下の parse() 関数を使用して argv 配列の内容を埋めようとした後、その内容を出力しようとすると、セグメンテーション違反が発生します。これはおそらく、範囲外の argv 配列の一部にアクセスしようとしていることを意味します。ただし、配列を埋める引数を 1 つだけ指定した場合でも、segfault が発生します。argc を出力するために使用される printf 呼び出しは、入力に基づいて argc の正しい値を返しますが、*argv[0] を指定した 2 番目の printf 呼び出しが segfault の原因となっています。エラーが argv の内容を印刷しようとしている方法にあるのか、それとも argv を間違って入力しようとしているためにエラーが発生したのか疑問に思っています。
編集: getword() 関数がテキスト行を受け取り、スペースで区切られた最初の単語とその他の区切り文字を返すことを追加する必要があります。必要に応じて、単語を分割するすべての区切り記号を投稿できますが、問題は getword() によるものではないと思います。
編集 2: ヘッダー ファイルに追加され、メインに #include ステートメントが含まれています。
編集 3: main() の下に getword 関数を追加し、p2.h の下に getword.h を追加しました
main に含まれるヘッダー ファイル p2.h は次のとおりです。
getword.h:
主な機能は次のとおりです。
getword.c:
java - JNI。jobject から jstring を取得して char* に変換する方法
これは私がこれまでに持っているものです: String と Integer の 2 つのフィールドを持つオブジェクトをパラメーターとして渡し、情報を送信して C 部分で処理したいのですが、これは現時点では重要ではありません... jstring宣言時
私は何が欠けていますか?
c++ - ポインターを関数に渡し、ポインターで free() を呼び出すと、「ヒープ破損が検出されました」
ビジュアル スタジオ 2010
char 文字列にメモリを割り当て、その文字列 (ポインタ) を関数に渡し、メモリを解放しようとすると、「ヒープ破損が検出されました」という実行時エラーが発生します。
これは、メモリが返されたときにメモリを「解放済み」としてマークする関数の結果であると思われますが、これを回避する方法についてはまだ困惑しています。free() の呼び出しを単純に削除するのは気が進まない。