2015-01-26 6 views
0

C 코드를 MATLAB으로 변환하려고하는데 이해가 안되는 코드가 있습니다.벡터에 하나 추가하기

void envelope_old (float *fdata, float *lpfdata, int nsamps, int samprate, 

플로트 컷오프)

: 등의 입력을 접수

envelope_old(&fdata[0], lpfdata, winlength, samprate, BW); 

:

static float *lpfdata; 

이것은에 함수 호출 동안 할당 얻는다 : 구체적으로 정의 된 변수가

envelope_old 내에서 lpfdata는 "01"형식의 루프에 값이 할당되는 벡터로 참조됩니다"여기서 i는 루프의 인덱스 변수입니다.

나중에 형식의 함수 호출 :

downsample(lpfdata+1, dwndata, winlength, downby); 

가 호출됩니다. 이 경우 +1이 의미하는 바는 무엇입니까?

답변

0

포인터를 처리 할 때 lpfdata[n]lpfdata+n은 같습니다. 둘 다 n * sizeof(*lpfdata)을 원시 포인터에 추가하고 해당 주소의 메모리에 액세스합니다. 그래서이 경우

입력 float의 요소 lpfdata 포인트 sizeof(*lpfdata) == sizeof(float)

관련 문제