小编Rah*_*hul的帖子

在vector <bool>中访问元素的地址时获取临时地址

我只是在访问bool矢量中的元素地址时才收到警告.对于像int这样的其他数据类型的向量,我没有得到任何警告.

例如

vector<bool> boolVect;
boolVect.push_back(false);
if (boolVect.size() > 0) {
    cout << &boolVect[0] << endl;
}   
Run Code Online (Sandbox Code Playgroud)

我在声明"cout <<&boolVect [0] << endl;"中收到警告"取临时的地址"
有人可以澄清一下吗?

c++

7
推荐指数
1
解决办法
1394
查看次数

在呼叫者或被呼叫者中释放内存?

函数(Say"fun()")分配内存并将指针返回到已分配的内存.我应该如何确保释放此内存.我无法在函数"fun()"中立即释放它,因为它返回给调用者.如果fun()是图书馆的一部分怎么办?释放记忆是谁的责任.在fopen()的情况下,内存由fclose()释放.但在我的情况下,反复调用"fun()".所以我不能等到最后释放内存.

c++ memory-leaks memory-management

4
推荐指数
2
解决办法
2122
查看次数

在C ++中实现Map的向量

我想在C ++中使用Map的向量。我有映射值列表,我想将其存储为向量中的映射。我的要求是这样的:1.对于N列,我有一个值映射。2.我要维护N中每个i的映射。

我试图在向量>中保持此状态。请让我知道如何使其工作。

我正在使用以下代码添加映射

void fun() 
{
vector< map < string, int> > myVect;
myVect.push_back(new map< string, int> );
myVect.push_back(new map< string, int> );

map< string, int> entry1 = myVect[0];

entry1["ABC"] = 1;
entry1["DEF"] = 2;

map< string, int> entry2 = myVect[1];

entry1["ABC"] = 5;
entry1["RKD"] = 9;
}
Run Code Online (Sandbox Code Playgroud)

为什么不起作用?

c++

2
推荐指数
2
解决办法
2万
查看次数

"接受临时"警告

可能重复:
在vector <bool>中访问元素的地址时获取临时地址

我在下面的代码中得到了第7行的'临时'警告地址

vector<bool> boolVect;
bool x = true;
boolVect.push_back(true);
boolVect.push_back(false);
ofstream fMetaOut("tmp.txt", ios::out);
fMetaOut.write((char* )&x, sizeof(bool));
fMetaOut.write((char* )&boolVect[0], sizeof(bool));
fMetaOut.close();
Run Code Online (Sandbox Code Playgroud)

为什么我在第7行而不是第6行得到这个警告?两者都使用布尔地址.
我怎么能摆脱这个警告?

c++

-2
推荐指数
1
解决办法
2446
查看次数

标签 统计

c++ ×4

memory-leaks ×1

memory-management ×1