将静态字符数组转换为动态

时间:2012-12-04 12:33:35

标签: c dynamic arrays

给定一个静态数组如何将arr更改为动态分配为a pointer unsigned

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

现在如何将此值分配给arr

我是编程新手请帮助。

3 个答案:

答案 0 :(得分:3)

使用malloc()动态分配数组并使用memcpy()复制内容。记得free() malloc() d。

答案 1 :(得分:1)

最C ++的方法是使用std::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);

答案 2 :(得分:1)

尝试

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

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

*pArr

第二个元素:

*(pArr+1)
例如

您也可以想要this tutorial阅读。