私はCに比較的精通しており、Javaでのプログラミングに慣れているため、Cは配列に関するもので少し難しいと感じています。私はまだこのケースと混同しています:
int a [];
int* a;
int *a;
Javaでは、関数で配列を返すために次のようなことをします:
int [] returnArr(int [] a){
... modify a ...
return a;
}
int [] a = {...};
int [] b = returnArr(a); ##
C、特に ## の部分で同じことを行うにはどうすればよいですか。
編集:私はこの機能を持っています:
float *normalizeValues(float *v, float maxY){
int size = sizeof(v) / sizeof(float);
float max = findMax(v);
float ratio = maxY / max;
int i;
for(i = 0; i < size ; ++i){
v[i] = v[i] * ratio;
}
return v;
}
そして、私は次のことをしています:
float vert [] = {306, 319, 360, 357, 375, 374, 387, 391, 391, 70, 82, 94, 91, 108, 114, 125, 127, 131};
int i = 0;
float *vert2;
vert2 = normalizeValues(vert, 0.7);
for(i = 0; i < sizeof(vert2) / sizeof(float); ++i){
fprintf(stdout,": %f\n",vert2[i]);
}
そして、出力は1要素のみです。