Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxについて >> Linuxプログラミングでのセグメンテーションフォルトエラー処理

Linuxプログラミングでのセグメンテーションフォルトエラー処理

  

GDBを使用したデバッグ時に、Linuxでプロセスをプログラムしたところ、セグメンテーションフォルトエラーが発生しました。このエラーは主に、間違ったメモリセグメントへのアクセスが原因で発生します、アクセス権がないか、メモリセグメントが存在しない可能性があります。

は、次のとおりです。

このエラーは、どのようにそれの結果ですか? char型のポインタが定義されていて、その文字列がこのポインタに直接関係していることがわかります。例:

char * c1;

for(i = 0; i "n; i ++)

{

* c1 = getchar();

c1 ++;

}

コードはこれが事実であることを意味し、これは多くの開発者が行う問題です。このポインタは危険です、用心深く、ここに持っていくだけです。ポインタを指定します。書き込まれたデータがクリティカルエリアデータをカバーしている場合、壊滅的な結果をもたらす可能性があります。ここはあなたが訪れるべき場所です。解決策は何ですか?ポインタが指す文字列に空白を割り当てるためにmallocを使用しますこれはシステムが安全な空間を割り当て、メモリの重要な領域を分割しないことを示します。あなたのために。このようにしてあなたは安全に操作することができます。

この例では、ポインタを無差別に使用することはできませんが、ポインタが間違ったメモリを指していると、プログラミング中にSegmentation faultエラーが発生する場合は、上記の方法も使用できます。結果

Copyright © Windowsの知識 All Rights Reserved