在该函数内定义的数组,数组名可以直接用sizeof获取其长度。如果只是一个指向数组的指针,恐怕不行。
int size2 (T (&arr)[N]) { //此处是数组的引用 return N;} 指针的话,只能传size。
获取指针长度 windows平台 include<iostream>usingnamespacestd;intmain(){int*arr=newint[15];cout<<"_msize(arr):"<<_msize(arr)/sizeof(*arr)<<endl;// 输出15deletearr;return0;} linux平台 include<iostream>usingnamespacestd;intmain(){int*arr=newint[15];cout<<"malloc_usable_size(arr):"<...
#include<iostream>usingnamespacestd;//32bit osvoidfoo1(char*p){cout<<sizeof(p)<<endl;}//4v...
c语言里面通常会多加一个参数来表示指针指向内容的长度,如:ssize_t read_from_stream(stream_t* ...
在该函数内定义的数组,数组名可以直接用sizeof获取其长度。如果只是一个指向数组的指针,恐怕不行。
就蜕化为普通指针了,这就没有办法。建议使用: std::array, 和C 数组没有效率差异。
比如:function(XXX* array, int length)再比如,实际最常用的:int main(int argc, char** argv) ...
简单数组的指针是没有数组总长信息的,所以必须传长度。通过数组名获取长度请参考bing的回答。都用上C++...