小编wat*_*bou的帖子

如何在C中将char字符串与argv进行比较?

我正在尝试将字符串与argv参数进行比较.

我的主要内容是:

int main(int argc, char *argv[]) 
Run Code Online (Sandbox Code Playgroud)

现在,如果我写

if (argv[2] == 'squared') 
Run Code Online (Sandbox Code Playgroud)

IDE告诉我,我有一个多字符常量,或者char*对于它的类型或类似的东西来说太长了.

有没有办法将argv与字符串进行比较?我甚至使用过strcmp,但在程序运行时会给我一个分段错误.

我也尝试了一个for循环并增加了argv [i],但这也给了我一个错误.

也许我错过了什么?

c

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

如何正确释放 C++ 向量?

可能的重复:
如何正确解除分配或删除 C++ 向量?

我在尝试删除我在向量中分配的内存时遇到了一些问题。即使我调用 list.clear(),它也不会释放内存。

所以我在一个名为 Set 的基于模板的类中有一些这样的代码

template <class T>
class Set {
public:
    // stuff
private:
    int size;
    std::vector<T> list;
};
Run Code Online (Sandbox Code Playgroud)

在构造函数中,我为向量分配了内存。所以我调用 list = new std::vector;

为了您的兴趣,这里是我的复制构造函数和赋值运算符,我也知道我还为向量分配内存的地方:

template <class T>
Set<T>::Set(const Set& aSet)
{
    size = aSet.size;
    list->clear();
    list = new vector<T>;
    for (int i = 0; i < size; ++i) {
        list[i] = aSet.list[i];
    }
}

template <class T>
Set<T>& Set<T>::operator=(const Set& right)
{
    if (this != &right) {
        list->clear();
        size = right.size;
        list = new …
Run Code Online (Sandbox Code Playgroud)

c++ memory-management vector

0
推荐指数
1
解决办法
9011
查看次数

标签 统计

c ×1

c++ ×1

memory-management ×1

vector ×1