加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 从std :: vector <>转换为双指针?

发布时间:2020-12-16 10:31:47 所属栏目:百科 来源:网络整理
导读:如果有可能投出一个std :: vector,我想知道是否有好奇心.到一个双指针. 我从来没有遇到过以这种方式将std :: vector作为指针传递的问题: std::vectorchar myCharVector;myCharVector.push_back('a');myCharVector.push_back('b');myCharVector.push_back('c
如果有可能投出一个std :: vector<>,我想知道是否有好奇心.到一个双指针.

我从来没有遇到过以这种方式将std :: vector作为指针传递的问题:

std::vector<char> myCharVector;
myCharVector.push_back('a');
myCharVector.push_back('b');
myCharVector.push_back('c');
char *myCharPointer = &myCharVector[0];

所以我很好奇是否有可能以类似的方式分配指针的地址:

char *myPointer = "abc";
char **myDoublePointer = &myPointer;

我试过了:

char **myDoublePointer = (char**)&myCharVector;

但它不起作用.有没有办法实现这个目标?

解决方法

您已经知道& myCharVector [0]是指向char的指针.所以如果你把它存储在一个变量中:

char *cstr = &myCharVector[0];

然后你可以获取该变量的地址:

char **ptrToCstr = &cstr;

但只需解除引用两次,如下所示:

char **ptrToCstr = &(&myCharVector[0])

因为值(& myCharVector [0])尚未存储在内存中,因此无效.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读