【发布时间】:2020-12-15 11:37:27
【问题描述】:
我是 C/C++ 新手,我想知道将数组传递给函数而不进行复制的正确方法,例如:
void someFunction(uint8_t &array) {
// some work here
}
int main() {
uint8_t *array = (uint8_t*) malloc(sizeOf(uint8_t) * 100);
someFunction(*array);
}
这种方式正确吗?当我将数组传递给 someFunction() 时,它会复制吗?
【问题讨论】:
-
1) 没有像 C/C++ 这样的语言。您使用的是,显然是 C++(因为您无法使用 C 编译器编译此类代码)2)是什么让您认为,将
uint8_t*传递给函数会复制数组? -
你知道通过拷贝传递数组的方法吗?
-
您的示例中没有数组。您正在使用指针。
-
@easy_breezy "我只是想知道这是正确的方法,因为我是 C++ 新手 "在 C++ 中,如果你想要静态大小的数组,你会使用
std::array,如果你想使用动态大小的数组,你可以使用std::vector,并传递对它们的引用。 -
@easy_breezy
int x[10];那是一个数组。如果你想知道如何通过它,那么 C++ 比C有更多的答案。