热门

最新

红包

立Flag

投票

同城

我的

发布
2303_79711969
〆﹏陌若惜ヽ30
3 年前
true2303_79711969

求解决,

CSDN App 扫码分享
分享
评论
点赞
打赏
  • 复制链接
  • 举报
下一条:
在定义完成后将vector中的元素都置为0的方法:你的问题是在C++中使用memset函数时出现的。在C++中,你试图使用一个std::vector<char>作为memset的第一个参数,然而memset需要一个void*类型的参数。std::vector<char>并没有自动转换为void*的方法,所以你得到了这个错误。你可以通过获取std::vector<char>的起始地址来解决这个问题。你可以使用std::vector<char>的.data()方法来获取这个地址。.data()方法返回一个指向vector首元素的指针。所以你的代码应该修改为:cppstd::vector<char> l; memset(l.data(), 0, sizeof(l));但是这里需要注意的一点是,sizeof(l)只会返回std::vector<char>对象本身的大小,而不是它所管理的数组的大小。如果你想要将vector的所有元素都设置为0,你应该使用.size()方法获取元素数量,然后乘以元素的大小。例如,如果你的std::vector<char>的元素是char类型,那么你应该这样写:cppstd::vector<char> l; memset(l.data(), 0, l.size() * sizeof(char));
立即登录