C ++関数からローカル配列を返す方法は?
ローカル配列は、関数呼び出し後にメモリに存在しない可能性があるため、C++関数から直接返すことはできません。これを解決する方法は、関数で静的配列を使用することです。静的配列の存続期間はプログラム全体であるため、上記の問題なしにC++関数から簡単に返すことができます。
これを実証するプログラムは次のとおりです。
例
#include <iostream> using namespace std; int *retArray() { static int arr[10]; for(int i = 0; i<10; i++) { arr[i] = i+1; } return arr; } int main() { int *ptr = retArray(); cout <<"The array elements are: "; for(int i = 0; i<10; i++) { cout<< ptr[i] <<" "; } return 0; }
出力
上記のプログラムの出力は次のとおりです。
The array elements are: 1 2 3 4 5 6 7 8 9 10
上記のプログラムを理解しましょう。
関数retArray()では、静的配列arrが定義されています。次に、forループを使用してこの配列を初期化します。最後に、配列arrが返されます。これを示すコードスニペットは次のとおりです。
int *retArray() { static int arr[10]; for(int i = 0; i<10; i++) { arr[i] = i+1; } return arr; }
main()関数では、関数retArray()が呼び出され、ptrは配列arrの先頭を指します。配列要素は、forループを使用して表示されます。これを示すコードスニペットは次のとおりです。
int main() { int *ptr = retArray(); cout <<"The array elements are: "; for(int i = 0; i<10; i++) { cout<< ptr[i] <<" "; } return 0; }
-
JavaScript関数からオブジェクトを返す方法は?
JavaScript関数からオブジェクトを返すには、 returnを使用します ステートメント、 this キーワード。 例 次のコードを実行して、JavaScipt関数からオブジェクトを返すことができます- <html> <head> <script> var employee = { empname: "David"
-
newを使用してC++で2D配列を宣言するにはどうすればよいですか
動的2D配列は、基本的に配列へのポインターの配列です。これは、寸法が3x4の2D配列の図です。 アルゴリズム Begin Declare dimension of the array. Dynamic allocate 2D array a[][] using new. Fill the array with the elements. Print the array. Clear the memory by deleting it. End サンプルコード