可能重复:
如果传递给函数,则确定数组的大小
如何获得传递给函数的C++数组的大小?
在以下代码中,sizeof(p_vertData)不返回正确的数组大小.
float verts[] = {
-1.0,1.0,1.0,
1.0,1.0,1.0,
1.0,-1.0,1.0,
-1.0,-1.0,1.0,
-1.0,1.0,-1.0,
1.0,1.0,-1.0,
1.0,-1.0,-1.0,
-1.0,-1.0,-1.0
};
void makeVectorData(float p_vertData[]) {
int num = (sizeof(p_vertData)/sizeof(int));
cout << "output: " << num << endl;
};
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
如果您不介意模板,可以执行以下操作.请注意,只有在编译时已知数组大小时,它才有效.
template <int N>
void makeVectorData(float (&p_vertData)[N]) {
int num = (sizeof(p_vertData)/sizeof(p_verData[0]));
cout << "output: " << num << endl;
};
Run Code Online (Sandbox Code Playgroud)
还要注意你应该将sizeof(数组)除以数组元素大小.在您的示例中,您将float数组的大小除以整数的大小.
| 归档时间: |
|
| 查看次数: |
15337 次 |
| 最近记录: |