main 함수내에서의 배열이름이 double Array[8];면
크기를 구할 때 sizeof(Array)/sizeof(Array[0]) 하면 8이 나오더라구요
그래서 이걸이용해서 최솟값을 찾는 곳의 함수에서 쓰고 싶었는데 안나오더라구요
main함수내에서는 정상적으로 나오지만
Min()함수를 새로 정의하고 최솟값 찾는 함수
Min(double x[]){ double find; int i,j,k;
double find=x[0]; k=sizeof(x)/sizeof(x[0])-1;
로 해놓고
i=0~k까지에 대한 루프를 돌리려고 했는데 Array라는 배열을 Min함수에 넣어도 sizeof(x)=sizeof(x[0])=8로 나와서 무조건 -1이 나오더라구요
이 Min함수내에서 Array함수의 크기를 알 수 있는 방법 없을까요?
굳이 하려면 Min(double x[], int ii)를 받아서 ii를 사전에 미리 main함수에서 sizeof(Array)/sizeof(Array[0])-1 해줘도 될거 같긴한데
너무 안깔끔해서요..
Min(Array, sizeof(Array)/sizeof(Array[0]-1); 로 불러오기에는 너무..
가장 간단한 해결책으로서는 데이터값중 NaN값같은게 나오지 않는 경우 어레이 마지막에 NaN을 추가하고 NaN을 발견할때까지 루프를 돌린다거나 하는 방법이 있기는 한데요.
다른 (경우에 따라서는 더 좋은) 방법들은 이런 게 있습니다. http://stackoverflow.com/questions/968001/determine-size-of-array-if-passed-to-function
..그리고 저는 이래서 그냥 C/C++를 많이 안 씁니다 (.....) 성능이 꼭 필요하지 않은 경우에는 최고의 해결책..