首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Int32数组指针转换为Int8_t数组指针?

如何将Int32数组指针转换为Int8_t数组指针?
EN

Stack Overflow用户
提问于 2017-03-31 09:29:52
回答 1查看 576关注 0票数 0

任何想法。我试过这个:

代码语言:javascript
复制
int *p = (int*)malloc(N*sizeof(int));
...//set the value of p
int8_t *q = reinterpret_cast<int8_t *>(p);

但不起作用。我想得到结果q是连续的。但结果表明,如果p有4种元素:{1,2,3,4,5,6,7,8},则q为{1,0,0,0,0,0,0,0}

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-31 09:43:23

您的代码不像您预期的那样工作,因为reinterpret_cast不会将这些int转换为int8_t,它只是将int的值表示为字节。与其使用mallocreinterpret_cast,不如使用std::vector

代码语言:javascript
复制
//create an int vector of size N
std::vector<int> p (N); 

//copy p contents into a vector of int8_t
std::vector<int8_t> q {p.begin(), p.end()}; 

然后,如果您确实需要一个int8_t,您可以使用q.data(),但最好只使用向量或迭代器,而不是原始指针。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43137214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档