Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

C /C++でのセグメンテーション違反の一般的な理由のリスト


セグメンテーション違反の主な理由は、初期化されていないか、プログラムの範囲外であるか、文字列リテラルを変更しようとしているメモリにアクセスすることです。これらはセグメンテーション違反を引き起こす可能性がありますが、セグメンテーション違反が発生することは保証されていません。セグメンテーション違反の一般的な理由のいくつかを次に示します-

  • 範囲外の配列へのアクセス
  • NULLポインターの逆参照
  • 解放されたメモリの間接参照
  • 初期化されていないポインタの逆参照
  • 「&」(のアドレス)および「*」(間接参照)演算子の誤った使用
  • printfおよびscanfステートメントの不適切なフォーマット指定子
  • スタックオーバーフロー
  • 読み取り専用メモリへの書き込み

  1. n番目のカタラン数のC/C ++プログラム?

    カタラン数は一連の数です。カタラン数は、さまざまなカウントの問題で発生する一連の自然数を形成します。多くの場合、再帰的に定義されたオブジェクトが関係します。 C n 長さ2nのディック言語の数です。ディックワードは、n個のXとn個のYで構成される文字列であり、文字列の最初のセグメントにXより多くのYが含まれることはありません。たとえば、次は長さ6のディック言語です XXXYYY XYXXYY XYXYXY XXYYXY XXYXYY. 記号Xを開き括弧として、Yを閉じ括弧として再解釈します。C n 正しく一致するn組の括弧を含む式の数をカウントします ((()

  2. 三角マッチ棒番号のC/C ++プログラム?

    ここでは、ピラミッドを作るために必要なマッチ棒の数を数える方法を以下に示します。ピラミッドのベースが与えられます。したがって、ベースが1の場合、ピラミッドを作成するには3本のマッチ棒が必要です。ベース2の場合は9本のマッチ棒が必要であり、ベースサイズ3の場合は18本のマッチ棒が必要です。 この問題を解決するには、次の式を使用する必要があります- 例 #include <iostream> using namespace std; int main(){    int x;    cout << "Enter