問題タブ [pointer-arithmetic]

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

c++ - C ++文字列クラスでポインタ演算は可能ですか?

CIで少しプログラミングした後、すぐにC++にジャンプすることにしました。最初は、文字列クラスが存在し、文字列を文字の配列ではなく全体の単位として扱うことができることに満足していました。しかし、Cスタイルの文字列には、プログラムがポインタ演算を使用して文字ごとに移動し、目的の論理演算を実行できるという利点があることがすぐにわかりました。

私は今これを必要とする状況にいることに気づきましたが、コンパイラは文字列型からCスタイルの文字列に変換できないと言っています。だから私は疑問に思っていました、単一の文字を参照するためにポインタ演算を使用する方法、または文字の配列を作成することなく文字列クラスを使用しながら最初の文字のアドレスとして関数に引数を渡す方法はありますか?私のケーキを持ってそれも食べますか?

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

c++ - ポインタコンパイラの問題

私は3年以上ポインターを使用していませんが、このトピックについては非常に錆びています。次のコードをコンパイルすると、大量のエラーが発生します。エラーは次のとおりです。

リンクリスト.h:

リンクリスト:

LinearNode.h:

LinearNode:

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

c - C における配列演算の問題

cc を使用してコンパイルされた長いファイルに C コードがあります。しかし、gcc でコンパイルしようとすると、エラーが発生します。その特定のコードを小さなプログラムで取り、ccでコンパイルしようとしましたが、そこで失敗しました。

ソースは次のとおりです。

この行が問題を引き起こしています: FileName[strstr(FileName,test) - FileName] = 0;

CC のエラーは次のとおりです。

そしてgccでは:

しかし、CCで元のファイルをコンパイルすると、コンパイルされて警告が表示されます。このような:

ここで「不適切なポインター減算」という警告が表示され、サンプルプログラムがエラーを表示している理由を教えてください。

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

c - C 初心者向けの質問: ポインター演算 > 完了したら後片付け

ポインタのコツを少しずつ掴んでいます。しかし、まだいくつか疑問があります。

ポインターが指している実際の位置をシフトしているため、ポインター演算を使用するとメモリリークが発生する可能性はありますか?

つまり、文字列 char を char ごとにコピーするために上向きにカウントするとしたら、ポインターがどこを指していたかを C が「知る」ためにカウントダウンする必要があるでしょうか?

ありがとうフランク

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

c++ - ポインター演算?この3つの表現の違いは何ですか?

だから私は2つのことを理解しようとしています:

  1. これらの 3 つの表現の違いは何ですか?
  2. 最初の式 (A) に相当するものは何ですか?

コードは次のとおりです(固定):

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

c - ポインター演算後のポインターの解放

私の質問は非常に単純なものです。私たちが持っているとしましょう:

ポインターを解放するとどうなりますか? 未定義動作ですか?SIZE バッファのすべてを解放しますか、それとも残りの SIZE/2 のみを解放しますか? これを明確にしてくれてありがとう。

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

c++ - このURLデコーダーを理解するのを手伝ってください:

自分でURLデコードを試した後、うまくいくアイデアを思いついたのですが、あまり効率的ではありませんでした。URLデコードは、私のプログラムで深刻なボトルネックが発生する可能性がある場所であるため、インターネットにアクセスして、より効率的な解決策を見つけることにしました。私はこのcodeguruの記事に出くわしました:

http://www.codeguru.com/cpp/cpp/string/conversions/article.php/c12759

今、私は他の誰かのコードを使用することに反対していません。特にそれが私のものよりも優れている場合はそうです。しかし、私はそれがどのように機能するかを知る前に知りたいです。完全に理解していないコードを使用しても意味がありません。

ここで私は立ち往生しています。デコード機能で行われているポインタの動作のほとんどを理解しています。私が迷子になるのは、HEX2DEC配列とそれに関連する変換演算です。Webサイトでは提供されていませんが、ダウンロード例では、デコード機能と一緒に便利なようにここに投稿します。

http://pastebin.com/AVDnr6cK

この関数は、この配列を使用して16進数を10進数に変換し、次に10進数をASCIIに相当するものに変換するのにどの程度正確ですか?

よろしくお願いします。

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

c++ - このコードの説明を手伝ってもらえますか?

変換しようとしているこの関数がありますが、コードの一部で何が起こっているのか理解できません。誰でも私を助けてコードを説明してください。彼らがポインターで何をするのか知りたいだけです。コードには、ポインターで地獄を行う空白のコメントがいくつかありますが、私はそれを理解していません。

どんな助けでも感謝します。

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

c - C ポインター演算

ここで達成しようとしているのは、cString を取得し、特定の文字を strchr() 関数を使用して見つけた別の場所に置き換えることです。

私が理解できないのは、私のすべての試み(以下にコメントアウト)で文字を置き換える方法はすべて、編集されていない文字列を生成するか、プログラムをクラッシュさせる方法です。文字を置き換えることで正しい方向に進んでいると思います(char * cの開始アドレスを取得し、n(置き換えたい文字の前方のバイト数)を追加してから、その新しいアドレスに書き込みます)。私はそれを正しく機能させることができないようです。

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

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

c - C での 2D ポインター演算

C で 2D 配列の 2 つの要素を交換しようとしていますが、うまくいきません。

これまでの回答に感謝しますが、このコードを編集して、自分が何をしているのかを明確にしました。

言うまでもなく、これは機能しません。例を検索しましたが、何も機能していないようです。n00b へのアドバイスをいただければ幸いです。