由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 用数组做参数,在函数内部如何知道数组的size?
相关主题
a simple question for C++ class腆着脸在问一道
关于C++中一个Class的大小 (转载)来,出个题
数组定义的时候,分配空间了么?一个指向指针的指针的引用?
问个简单的memory allocation 的问题。一个古怪的C程序运行错误。
请大侠评点一下我这个C++多重继承的程序。。。写得对不对啊。a question about bitwise operation
我这个C++程序有没有什么问题啊?请指点。。。谢谢。。。g++ default optimization error
请教个static_cast vs reinterpret_cast的问题。数组问题
C++里get array size的问题 (转载)问个hash函数问题
相关话题的讨论汇总
话题: 数组话题: size话题: int话题: sizeof话题: vector
进入Programming版参与讨论
1 (共1页)
d*******n
发帖数: 524
1
我运行了下面的code
void f(int a[]) {
cout << "inside f:" << sizeof a << endl;
}
int main() {

int a[] = {2,3,4,5,6,7,8,9};
cout << "outside: " << sizeof a << endl;
f(a);
char e;
cin >> e;
return 0;
}
发现输出是:
outside: 32
inside f:4
也就是说在f内部用sizeof的话得到不是这个数组的size
那么在数组内部如何得到数组的size呢?
t****t
发帖数: 6806
2
no you can not get the array size if the array is function parameter. T[]
will be automatically converted to T* for function parameters.
theoretically, the size of array is a part the type. int [5] and int [3] are
different types. therefore it is impossible to get the size information at
runtime, if you don't know it at compile time.

【在 d*******n 的大作中提到】
: 我运行了下面的code
: void f(int a[]) {
: cout << "inside f:" << sizeof a << endl;
: }
: int main() {
:
: int a[] = {2,3,4,5,6,7,8,9};
: cout << "outside: " << sizeof a << endl;
: f(a);
: char e;

d*******n
发帖数: 524
3
This reminds me another question:
should I, as a c++ programmer, always use vector rather than array?

are
at

【在 t****t 的大作中提到】
: no you can not get the array size if the array is function parameter. T[]
: will be automatically converted to T* for function parameters.
: theoretically, the size of array is a part the type. int [5] and int [3] are
: different types. therefore it is impossible to get the size information at
: runtime, if you don't know it at compile time.

t****t
发帖数: 6806
4
you don't have to.

【在 d*******n 的大作中提到】
: This reminds me another question:
: should I, as a c++ programmer, always use vector rather than array?
:
: are
: at

S**I
发帖数: 15689
5
貌似大多数的C++教程都是建议能用vector就用vector,不用array

【在 d*******n 的大作中提到】
: This reminds me another question:
: should I, as a c++ programmer, always use vector rather than array?
:
: are
: at

i******t
发帖数: 370
6
That's because they are "C++" tutorials instead of "C"

【在 S**I 的大作中提到】
: 貌似大多数的C++教程都是建议能用vector就用vector,不用array
S**I
发帖数: 15689
7
说的不就是C++嘛,C里也没有vector这东东,不用array用啥?

【在 i******t 的大作中提到】
: That's because they are "C++" tutorials instead of "C"
d*****1
发帖数: 1837
8
performance issue, there is overhead with vector.
v*s
发帖数: 946
9
如果对performance要求不高,怎么方便怎么用吧。
vector咋啦?
l******e
发帖数: 12192
10
not true

【在 d*****1 的大作中提到】
: performance issue, there is overhead with vector.
s*****u
发帖数: 164
11
Thinking in C++, Vol. II, Page. 249
f******y
发帖数: 2971
12
vector是在heap上的,创建时稍慢一些。另外,vector也比实际数组大一些。但这些差
别应该都不重要,vector的好处远远多于它的overhead。
1 (共1页)
进入Programming版参与讨论
相关主题
问个hash函数问题请大侠评点一下我这个C++多重继承的程序。。。写得对不对啊。
zero-sized array vs pointer我这个C++程序有没有什么问题啊?请指点。。。谢谢。。。
含泪流血裸奔完整代码回答C++弱问题请教个static_cast vs reinterpret_cast的问题。
问一个C++文件读取的问题C++里get array size的问题 (转载)
a simple question for C++ class腆着脸在问一道
关于C++中一个Class的大小 (转载)来,出个题
数组定义的时候,分配空间了么?一个指向指针的指针的引用?
问个简单的memory allocation 的问题。一个古怪的C程序运行错误。
相关话题的讨论汇总
话题: 数组话题: size话题: int话题: sizeof话题: vector