在c++中复制数组
copy array in c++
嗨,我有这个函数:
void vector(int imputC[]) {
//return v*
//imputC[].lenght
int a =sizeof(imputC) / sizeof(int);
// float v[2 * a + 2];
// v[0]=0;
for (int i = 0; i < a ; i++)
v[i] =(float)imputC[i];
for(int j = 0; j < 10; j++)
cout << a << endl;
}
And main:
int main() {
int array[] = { 23, 5, -10, 0, 0, 321, 1, 2, 99, 30 };
// float *v[22];
vector(array);
}
a的大小为1。为什么呢?我不明白,我想那是唯一的对象。
表达式sizeof(imputc)
在您的函数中不起作用,因为数组作为指针传递并且不保留原始数组的大小。因此,该表达式只返回指针的大小,而不是它所指向的数组的大小。
如果必须将数组传递给需要知道数组中元素个数的函数,则必须始终将数组大小作为参数传递给该函数。
在以数组类型作为实参的函数声明中,数组类型衰变成指向第一个元素的指针。所以
void vector(int imput[])
与
相同void vector(int *imput)
接受数组参数的函数需要有其他方法来获取数组中的元素个数
相关文章:
- 在数组中使用C++中的哈希表复制数组中的元素
- 快速复制数组到阵列
- 如何在C 中复制数组
- 赋值运算符复制数组中除可用空间之外的所有内容
- 尝试复制数组时从 DLL 调用函数时程序崩溃
- 反向复制数组
- 复制数组 - 将数组加倍后崩溃
- 复制数组和气泡排序 C++
- 在结构中复制构造函数:是否复制数组
- 如何从类中复制数组并将新数组的大小加倍
- 在C++中复制数组的麻烦
- 逐行复制数组的内容
- tictactoe和复制数组
- 正在使用数组的名称strring复制数组
- c++复制数组到数组
- . net互操作是来回复制数组数据,还是固定数组?
- 从通过函数发送的结构体中复制数组
- 使用CUDA Thrust置换迭代器复制数组的特定元素
- C/ c++中有复制数组的函数吗?
- 在引用中复制数组