w*******n 发帖数: 773 | 1 如果有一个
int* p= new[100];
假设我们现在不知道size 是100
有什么办法可以知道P所指向的空间的size 麻? |
h***n 发帖数: 276 | 2 如果只是需要临时分配不确定大小数组的话
用gcc,可以支持以下的语法
void foo(int n) {
int m[n];
...
}
【在 w*******n 的大作中提到】 : 如果有一个 : int* p= new[100]; : 假设我们现在不知道size 是100 : 有什么办法可以知道P所指向的空间的size 麻?
|
g**u 发帖数: 583 | 3
no, you need to pass entra parameter, size in this case, to your function
who will use it.
but the OS knows the size of the array when you call delete [] p since the
OS allocates the memory to you.
Java provides bound-checking, but not C/C++.
【在 w*******n 的大作中提到】 : 如果有一个 : int* p= new[100]; : 假设我们现在不知道size 是100 : 有什么办法可以知道P所指向的空间的size 麻?
|
C*****n 发帖数: 1872 | |
M7 发帖数: 219 | 5 C/C++应该是不知道array大小的。所以建议用vector.
function
the
【在 g**u 的大作中提到】 : : no, you need to pass entra parameter, size in this case, to your function : who will use it. : but the OS knows the size of the array when you call delete [] p since the : OS allocates the memory to you. : Java provides bound-checking, but not C/C++.
|
s*w 发帖数: 729 | 6 not necessarily true for some compilers
【在 C*****n 的大作中提到】
|