如果直接定义了数组的长度。再将数组传递给函数。_msize 是没法取得所传指针内存大小的。如: 1 2 DATA d[10]; fn(d);// 会触发错误 但如果只想取 new 动态创建的数据指针,_msize能完全任务。我们还可以用模板的方式,让代码适应性更强些。如: 取动态数组指针的函数: 1 2 3 4 5 6 7 8 template<cl...
int size2 (T (&arr)[N]) { //此处是数组的引用 return N;} 指针的话,只能传size。
#include<iostream>usingnamespacestd;//32bit osvoidfoo1(char*p){cout<<sizeof(p)<<endl;}//4v...
c语言里面通常会多加一个参数来表示指针指向内容的长度,如:ssize_t read_from_stream(stream_t* str...
简单数组的指针是没有数组总长信息的,所以必须传长度。通过数组名获取长度请参考bing的回答。都用上C++...
function(XXX* array, int length)再比如,实际最常用的:int main(int argc, char** argv) { }...