일부 데이터 배열에서 극한치를 검색하는 함수가 있습니다. 데이터에 대한 포인터, 일부 매개 변수 및 결과가 저장되는 구조체 배열에 대한 포인터를 사용합니다. 함수는 결과 struct 배열의 길이를 반환합니다.함수의 구조체 요소 필드의 배열에 대한 포인터
int FindPeaks(float *data, int WindowWidth, float threshold, struct result *p)
{
int RightBorder = 0;
int LeftBorder = 0;
bool flag = 1;
int i = 0;
int k = 0;
while(1)
{
flag = 1;
if (WindowWidth >= 200) cout << "Your window is larger than the signal! << endl";
if (i >= 200) break;
if ((i + WindowWidth) < 200) RightBorder = i + WindowWidth;
if ((i - WindowWidth) >= 0) LeftBorder = i - WindowWidth;
for(int j = LeftBorder; j <= RightBorder; j ++)
{
if (*(data + i) < *(data + j))
{
flag = 0;
break;
}
}
if (flag && *(data + i) >= threshold && i != 0 && i != 199)
{
struct result pointer = p + k;
pointer.amplitude = *(data + i);
pointer.position = i;
i = i + WindowWidth;
k++;
}
else
{
i ++;
}
}
return k;
}
i-th 구조체 필드에 대한 참조와 혼동되어 결과가 표시됩니다. 내가 뭔가 잘못하고 있는거야?
*** "결과를 넣기 위해 i-th 구조체 필드에 대한 참조와 혼동합니다."*** - 그게 무슨 뜻입니까? –
'struct result pointer = p + k;':는 다음과 같은 느낌이 들었습니다.'struct result * pointer = p + k; ' –
이 줄을 컴파일 할 수 없습니다. i 번째 진폭 포인터 설정 문제 : pointer.amplitude = * (data + i); – Dankevich