gpt4 book ai didi

C++ 内存地址递增

转载 作者:太空狗 更新时间:2023-10-29 20:44:30 25 4
gpt4 key购买 nike

有没有办法让我获取内存地址并将其提前一定数量存储在变量中?该变量类型必须是什么?

例如,在下面的代码中,我想首先查看 data + 0,然后在之后的每个步骤中查看 data + sent。如果我没看错的话,sent 是以字节的形式存储的,而 data 是一个内存地址。

bool sendAll(int socket, const void *data, ssize_t size) {
ssize_t sent = 0;
ssize_t just_sent;
while (sent < size) {
just_sent = send(socket, data + sent, size - sent, 0);
if (just_sent < 0) {
return false;
}
sent += just_sent;
}
return true;
}

最佳答案

这就是 char* 的作用。指针数学,当指针的类型为 T* 时,始终以 sizeof (T) 为增量进行计算。根据定义,sizeof (char) == 1

所以尝试:

just_sent = send(socket, sent + (const char*)data, size - sent, 0);

关于C++ 内存地址递增,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13132659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com