-2

给定一个静态数组,如何使用arras将其更改为动态分配a pointer unsigned

char arr[] = {1,4,5,8,9,6,4,3,2,1,5,7};  
unsigned char *arr = NULL;

现在如何将此值分配给arr.

我是编程新手,请帮忙。

4

3 回答 3

3

用于malloc()动态分配数组并用于memcpy()复制内容。记住free()什么是malloc()d.

于 2012-12-04T12:41:01.627 回答
1

最 C++ 的方法是使用 astd::vector而不是原始分配的数组:

std::vector<unsigned char> dynArr(arr, arr + 12); //where 12 is array size

如果您确实需要动态分配的原始数组,请使用std::copy()

unsigned char *dynArr = new unsigned char[12];
std::copy(arr, arr + 12, dynArr);
于 2012-12-04T12:37:30.680 回答
1

尝试

char arr[] = {1,4,5,8,9,6,4,3,2,1,5,7};
char *pArr = arr;

现在您可以访问第一个元素:

*pArr

第二个元素为:

*(pArr+1)

例如

您也可能想阅读本教程

于 2012-12-04T12:44:33.260 回答