C 関数から配列を返す
C 関数から配列を返すことは、この言語では直接サポートされていません。ただし、この機能を実現するにはいくつかの手法があります。
1 つの手法は、動的に割り当てられた配列へのポインタを返すことです。これにより、任意のサイズの配列を返すことができますが、手動のメモリ管理が必要となり、エラーが発生しやすくなります。
もう 1 つのオプションは、std::vector や std::array などの標準ライブラリ コンテナを使用することです。 。 std::vector は必要に応じて動的にサイズを変更できますが、std::array は固定サイズです。これらのコンテナのいずれかを返すことで、配列を値で渡すことができ、メモリ管理の問題を回避できます。
これは std::array を使用した例です:
std::array<int, 2> myfunction(std::array<int, 2> my_array) { std::array<int, 2> f_array; f_array[0] = my_array[0]; f_array[1] = my_array[1]; // modify f_array some more return f_array; }
あるいは、reference を使用することもできます配列を参照によって渡すセマンティクスにより、その内容をコピーする必要がなくなります。ただし、このアプローチでは、呼び出し元が関数に有効な配列を提供する必要があります。
void myfunction(std::array<int, 2>& my_array) { my_array[0] = 10; my_array[1] = 20; } int main() { std::array<int, 2> my_array; myfunction(my_array); // Array is passed by reference std::cout << my_array[0] << " " << my_array[1] << std::endl; }
配列を扱うときは、次の点を考慮することが重要です。
以上がC 関数から配列を返すにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。