以下のように配列名を返そうとしました。基本的には、関数テストがmainで使用できる配列を返すようにしようとしています。このような機能をどのように実行するかを知るために私がもっと知る必要があるものについて私に助言してもらえますか?C関数から配列戻り値型を作る方法は?
#include <stdio.h>
int test(int size, int x){
int factorFunction[size];
factorFunction[0] = 5 + x;
factorFunction[1] = 7 + x;
factorFunction[2] = 9 + x;
return factorFunction;
}
int main(void){
int factors[2];
factors = test(2, 3);
printf("%d", factors[1]);
return 0;
}
私は、コンパイラのエラーを受け取る:
smallestMultiple.c:8: warning: return makes integer from pointer without a cast
smallestMultiple.c:8: warning: function returns address of local variable
smallestMultiple.c: In function ‘main’:
smallestMultiple.c:13: error: incompatible types in assignment
既に多くの素晴らしい回答があります。私からのちょっとしたメモ: 'factorFunction'は"あなたの配列の最初の(または0番目の)要素のアドレス "を指しています。 '&factorFunction [0]'と同じ意味で、 "0番目の要素のアドレス"に変換されます。 – wpp
こんにちはコメントのおかげで!私はこれを理解していますが、実際に1を1にすることを意図しました.0番目のインデックスを無視するのは悪い習慣と考えられますか? – user1530249
あなたは0番目の要素を無視してはいけません!これまで慣れてきたことがありますが、それは必須です(ルビーのような高級言語の場合でも)。 – wpp