![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| 高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| は、基本的なファイルは、特定のプログラムが必要か? | cypher82 | UNIXの詳細&エキスパートのためのユーザー | 4 | 2008年5月29日 09:07午前 |
| Cプログラムに関するヘルプが必要 | dwgi32 | 高レベルのプログラミング | 2 | 2007年11月19日 10:44午前 |
| 金融監督院とVGs約おかしいこと | mhenryj | AIX | 4 | 2007年11月13日 04:42午後 |
| awkはおかしいとの結果 | amatheny | シェルプログラミングとスクリプティング | 2 | 2007年11月1日 06:12午後 |
| 変なメッセージですか? ? ? | lesstjm | UNIXのダミー質問と回答のため | 6 | 2002年1月4日 10:01午前 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
ありがとう
みんなトンの入力をお寄せいただきありがとうございます。
まあ数値1 、私は似たようなラインで考えていた。 j以来、 15バイトが割り当てられたが、さらに、たとえ私の入力バッファを言う(基本的に> 15 ) 20のステップは、撮影、プログラムが停止されていません。 今すぐの場所にいくつかの点で韓国と仮定tht / jに割り当てられたスペースに、なぜ、上記の条件は、 SEGVの原因はオーバーフローが発生していないか? Shouldn't SEGVが発生するときに私のプログラムにアクセスする 任意の 外部メモリ空間の割り当て? (させるだけで有効/無効addessses ) また、私は、 sprintfをtht前に' K 'で注目は、かつては、その値はstdout 、 sprintfを1回では、文字列。だからおそらく、これらの有効なアドレスとプログラムの範囲内として扱われますか? ところで、私は上記のシナリオで事故時に何かを実験した。また、私が何をしているよう違法だし、知っているが、私の作品がperplexes ! ![]() ![]() |
|
||||
|
これは実装の詳細これは厳密な方法は、いくつかのアーキテクチャでは、仮想メモリを召喚することと、自分の作業を設定することを追加すると、特に場合は、 OSの場合は、スタックを拡張していると考えている。
異なるアーキテクチャ以外についても厳しくしている(コードの部分を)を書く( 2 )ずれにアクセスできます。 |
|
||||
|
' jの内容をプリントアウトを試みたあることが'が存在するか? ' J 'であるものと推測して私はその内容を停止するには、 SEGVの原因となっては、導入以来の結果に影響を与えている。
誰もが'に焦点を当てているK 'で、私はまだ見ている誰も言及'私' 。どんな内容のsprintfを'私'を放出しては' K 'で指しているトラバースする必要があります。私は容疑者'はJ 'であると'私' 'よりも多くの関係J 'であると'がK 'で。 もし私が推測するには、 ' J 'である(存在する場合) 、いくつかの点では、ヌル終端( ' \ 0 ' )で、 '私'にいくつかのポイント( SEGVで前)に実行されている'の内容をJ 'である。これは、もちろん、 "ゴミ"の両方を読むことができると' unreferenced K 'で棒にSEGVする可能性を軽減するための量を制限しています。 ' J 'であると明らかに画像のメモリの領域の中にそれを実行しているはずですが、 sprintfを出しなさい。私の推測で、 sprintfを' 'のいずれかをオーバーフロー'を一体にK 'でこれはかなり長い間、メモリにはnullをターミネータかが表示されないの前に、 sprintfをヌル終端のテキストセグメントと、 OSに取得されている私は横断ないように、データセグメント違反です。 私は、 AIXのコアの存在に関係なく、 '私の理論をテストするJ 'である。 |
|
||||
|
定義によるSEGV 、あなたはあなたに割り当てられたメモリセグメントへの書き込みの外にしようとしているということです。 SEGVを与えた場合は、最初のケースでは、唯一のポインタなので、最初の書き込みは記憶に割り当てていた。 2番目の1つ以上のエラーを検出することは困難です。限り、あなたはあなたに割り当てられたメモリへの書き込みをしている場合は、 SEGVを取得することはありません。あなたのポインタに割り当てられたメモリを指すように、この場合のごj [ ]の文字の配列が起こる。ここには十分なものとするとSEGVも、ときに、割り当てられたメモリの終わりから秋になっちゃうよ。割り当てられたメモリの場合は、またはを指すようにするコンパイラとランタイムライブラリの場所をポイントするようにしたい考えがあるが割り当てられたメモリは、ポインタを使用しています。限り、割り当てられたメモリを指している場合は、ランタイムは、 SEGVする問題ではない(あなたが割り当てられたメモリの外部)の書き込みではない
|
|
||||
|
引用:
さらに、私はSEGVの定義( )のために必ず書いているかどうかわかりません。は、テキストおよびデータセグメントとする試みは、テキストセグメントを読むこともいくつかのオペレーティングシステムではないかと思うのSEGVの原因とされています。 |