Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/146.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ strcmp()可以比较动态字符数组和静态字符数组吗?_C++_Arrays - Fatal编程技术网

C++ strcmp()可以比较动态字符数组和静态字符数组吗?

C++ strcmp()可以比较动态字符数组和静态字符数组吗?,c++,arrays,C++,Arrays,也许这是一个愚蠢的问题,但我问这个问题的原因是因为我使用strcmp()来比较动态数组和静态数组,它似乎给出了错误的结果。数组应该相等,但是strcmp()返回false。当我暂停程序时,这些数组之间唯一不同的两件事就是它们的内存位置 我不能向您展示全部代码,但这是我函数的一部分,其中包含以下两个变量: stock * Table::retrieveStock(const char tick[]) { uint8_t index = hashing(tick); if (tabl

也许这是一个愚蠢的问题,但我问这个问题的原因是因为我使用
strcmp()
来比较动态数组和静态数组,它似乎给出了错误的结果。数组应该相等,但是
strcmp()
返回false。当我暂停程序时,这些数组之间唯一不同的两件事就是它们的内存位置

我不能向您展示全部代码,但这是我函数的一部分,其中包含以下两个变量:

stock * Table::retrieveStock(const char tick[])
{
    uint8_t index = hashing(tick);
    if (table[index])
    {
        bool test = strcmp(table[index]->data->getTick(), tick);
    //irrelevant code
下面是一些指针在
类中的声明方式:

struct node
    {
        stock * data;
        node * next;
        node()
        {
            stock();
            next = nullptr;
        }
        node(stock *& item)
        {
            data = item;
            next = nullptr;
        }
    };
    node ** table;
我有一个类对象数组,不管怎样,关键是我比较了两个应该相等的刻度值。我正在使用
getTick()
函数从对象中拉出一个:

const char * stock::getTick() const
{
    return tick;
}
一个被传递到函数:
const char tick[]
。我不知道我的代码到底出了什么问题。我很想给你们更多的代码来使用,但我看不出它除了让你们更难解决这个问题之外还能做什么

编辑:也许这会有帮助;我只是想到了。这正是我的编译器所说的值:

curr->data  0x005d93e8 {tick=0x005d9f38 "TSLA" name=0x005da100 "2" value=2.00000000 ...}    stock *


strcmp()。它不会返回<代码>真< /COD>或<代码> false 。正如你所期待的。< /P>你的问题是C++而不是C,请更改标签。@ BBRUN我把它标记为C,以阻止人们告诉我使用字符串类。我已经改变了,但是你怎么知道C++和非C都是空结尾的字符串?code>strcmp
依赖于以null结尾的。@JonathanPotter如果字符串不匹配,它会返回什么?@JonathanPotter嗯,我认为strcmp()返回的是真值还是假值这一事实是我错误的根源。如果你想把它作为一个答案,我很乐意把它标记为正确答案。请确保您在回答中指定将布尔值设置为0会使其为假。谢谢。我觉得自己像个白痴,没有意识到这一点。我甚至查了一下strcmp()函数,发现它返回的是一个整数而不是bool,对此我一无所知。我希望我给你的互联网点数足以补偿我浪费你的时间。
tick    0x004afb20 "TSLA"   const char *