我真的不明白这一点.也许有人可以解释我.我想知道dataInput中有多少个元素.我在C编程
void Calibrate_data(float* dataInput)
{
int dataSize = sizeof(*dataInput)/sizeof(float);
printf("%i and %i",sizeof(*dataInput)/sizeof(float),dataSize);
}
Run Code Online (Sandbox Code Playgroud)
输出是:
1 and 10
Run Code Online (Sandbox Code Playgroud)
这是错误的格式说明符:
printf("%i and %i",sizeof(*dataInput)/sizeof(float),dataSize);
^^
Run Code Online (Sandbox Code Playgroud)
sizeof
返回无size_t
符号类型,正确的格式说明符是Visual Studio 中的或。%zu
%Iu
使用错误的格式说明符会调用未定义的行为,但这似乎无法解释10
for的输出dataSize
没有意义,因为sizeof(*dataInput)
将是 a 的大小float
。因此,我们预计sizeof(*dataInput)/sizeof(float)
,1
正如 Macattack 所说,SSCCE 应该有助于解决该输出问题。