Cでは、戻り値の型を配列にすることはできませんか? オペレーティング システムのコースでポインターについて学び始めたところ、2 つの配列をパラメーターとして取り、両方のパラメーター配列に含まれる要素のみを含む配列を返す関数を作成する必要があります。
これは、配列を返す C 関数のこれまでの内容です。
#include <stdio.h>
main()
{
printf("Hello world");
int array1[4] = {1, 2, 3, 4};
int array2[4] = {3, 4, 5, 6};
int* inter = intersection(array1, array2);
printf(inter); // <-- also, I don't know how I could get this to work for testing
//freezes program so it doesn't terminate immediately upon running:
getchar();
}
int* intersection(int array1[], int array2[])
{
int arrayReturn[sizeof(array1) + sizeof(array2)];
int count = 0;
for(int i = 0; i < 4; i++)
{
for(int j = 0; j < 4; j++)
{
if(array1[i]==array2[j])
{
arrayReturn[count] = array1[i];
count = count + 1;
}
}
}
return arrayReturn;
}
もう 1 つの質問は、printf() ステートメントを使用して main() メソッドでこの関数をテストするにはどうすればよいかということです。
私がこれを行う必要がある理由は、プロセスとメモリ割り当てについて学習しているためであり、ポインタは OS 開発で大きな役割を果たすからです。私の教授は、ポインターを理解するのが非常に難しいため、多くのプログラミング言語からポインターを除外していると私に言いました。