使用传递给函数的标准C数组时,很难获得数组的大小:
#include <iostream>
void customFunction(bool* arr) {
std::cout << sizeof(arr) << std::endl; // returns 8
std::cout << sizeof(arr) / sizeof(arr[0]) << std::endl; // returns 8 as well
}
int main() {
bool myArray[5] = {0, 1, 1, 0, 0};
std::cout << sizeof(myArray) << std::endl; // returns 5
customFunction(myArray);
//...
}
如何仅使用普通C函数和原始类型来获取函数内部的bool数组的大小?