C /C++で範囲外の配列にアクセスする
Javaなどの言語では、 java.lang.ArrayIndexOutOfBoundsExceptionなどの例外 配列が範囲外にアクセスされた場合に発生する可能性があります。ただし、Cにはそのような機能はなく、配列が範囲外にアクセスされると、未定義の動作が発生する可能性があります。
これをCで示すプログラムは次のとおりです。
例
#include <stdio.h> int main() { int arr[] = {1,2,3,4,5}; printf("The elements of array : "); for(int i = 0; i<6; i++) printf(" %d",arr[i]); return 0; }
出力
上記のプログラムの出力は次のとおりです。
The elements of array : 1 2 3 4 5 32765
上記のプログラムを理解しましょう。
配列arrは、添え字4までのみ値を割り当てています。したがって、配列要素が出力されると、arr[5]はガベージ値になります。これを示すコードスニペットは次のとおりです。
int arr[] = {1,2,3,4,5}; printf("The elements of array : "); for(int i = 0; i<6; i++) printf(" %d",arr[i]);
-
マージソートを使用して配列内の反転をカウントするC/C ++プログラム?
指定された配列をソートするために発生する反転の数は、反転数と呼ばれます。反転問題は、マージソートアルゴリズムを使用して解決できる古典的な問題です。この問題では、v左側にある要素よりも多くのすべての要素をカウントし、そのカウントを出力に追加します。 ThisLogicは、マージソートのマージ関数内で実行されます。 トピックをよりよく理解するために、例を見てみましょう。マージプロセスに関係する2つのサブアレイについて考えてみましょう- Input: arr[] = { 1, 9, 6, 4, 5} Output: Inversion count is 5 説明
-
C /C++での多次元配列の初期化
多次元配列では、配列の次元は1より大きい必要があります。次の図は、次元が3 x 3x3の多次元配列のメモリ割り当て戦略を示しています。 これは、多次元配列を初期化するためのC++プログラムです。 アルゴリズム Begin Initialize the elements of a multidimensional array. Print the size of the array. Display the content of the array. End 例 #include<iostream>