我真的不明白这一点.也许有人可以解释我.我想知道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
使用错误的格式说明符会调用未定义的行为,但这似乎无法解释10for的输出dataSize没有意义,因为sizeof(*dataInput)将是 a 的大小float。因此,我们预计sizeof(*dataInput)/sizeof(float),1正如 Macattack 所说,SSCCE 应该有助于解决该输出问题。