我的循环中的一个函数以某种方式改变了我迭代的值,我不确定如何.如果描述得很糟,我很抱歉.
在这个for循环中
int k;
for( k = 0; k < 512; k++)
{
// Discardheader(d); // doesnt actually do anything, since it's a header.f
int databit = Getexpecteddata(d+4*k+1);
printf("%d ",k);
int transmitted = Datasample(&datastate, &datalength, d+4*k+2,dataerr,dataloc, databit);
printf("%d ",k);
Clocksample(&clockstate, &clocklength, d+4*k+3,clockerr, transmitted);
printf("%d \n",k);
}
Run Code Online (Sandbox Code Playgroud)
我得到这个输出
16 16 16
17 17 17
18 18 18
19 19 19
20 20 20
21 1 1
2 2 2
3 3 3
4 4 4
Run Code Online (Sandbox Code Playgroud)
所以Datasample一旦达到21就会改变k的值.d是char*d类型,表示我读取文件的缓冲区.更改输入文件不会改变21,切换发生.这是数据样本的代码:
int Datasample (int* state, int* …Run Code Online (Sandbox Code Playgroud)