如果直接定义了数组的长度。再将数组传递给函数。_msize 是没法取得所传指针内存大小的。如: 1 2 DATA d[10]; fn(d);// 会触发错误 但如果只想取 new 动态创建的数据指针,_msize能完全任务。我们还可以用模板的方式,让代码适应性更强些。如: 取动态数组指针的函数: 1 2 3 4 5 6 7 8 template<cl...
template<typename T> int size2 (T (&arr)[N]) { //此处是数组的引用 return N;} 指针的话,...
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* ...
function(XXX* array, int length)再比如,实际最常用的:int main(int argc, char** argv) { }...
指针不带长度信息,如果非要带长度就只能用数组做参数,不同长度的数组属于不同的类型,所以只能用模板...
指针也是变量,其两个属性没办法决定数组的长度的。另外,数组没办法做参数,即使有,一律转为指针。