c++ - 更新链表时遇到问题

标签 c++

<分区>

class MostBought {        //class in a .h file
private:
    typedef struct node {
        double moneySpent;
        char Name[50];
        node *next;
} * nodePtr3;

nodePtr3 head3;
nodePtr3 curr3;
nodePtr3 temp3;
nodePtr3 next3;

public:
    MostBought();
    void addMoney(double x, char Category[50]);
    void PrintList(); 
}; 

MostBought::MostBought() {  //everything else in main.cpp
    head3 = NULL;
    curr3 = NULL;
    temp3 = NULL;
    next3 = NULL;
}


void MostBought::addMoney(double x, char Category[50]) {
temp3 = head3;
while (temp3 != NULL) {
    if (temp3->Name == Category) {
        temp3->moneySpent = temp3->moneySpent + x;
    }
    else {
        temp3 = temp3->next;
    }
}
}

我像这样在 main() 中调用 addMoney “addMoney(aa.Price, aa.Category)”,其中 aa 是一个结构对象。 程序可以编译,但是当我尝试打印所有节点及其名称和值时,所有值都等于 0。 知道出了什么问题吗?

最佳答案

带有“(temp3->Onoma == Katigoria)”测试的第 4 行不会给出语法错误,但可能不会执行您期望的操作。它不进行字符串比较,它比较两个内存地址是否相同。如果您想查看两个字符串是否相等,请使用 strcmp() 或类似函数。

关于c++ - 更新链表时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37013872/

相关文章:

c++ - 加载 url 时 QWebView 崩溃

c++ - 使用虚拟继承对多态类使用 Cereal 进行序列化

c++ - 从 .txt 读取

c++ - Linux 不尊重 SCHED_FIFO 优先级? (正常或 GDB 执行)

c++ - 用引号和花括号初始化 char 数组

c++ - 我需要通过基类静态变量访问派生类成员

c++ - 了解从 blender 导出时的 Three.js 导出器格式

c++ - 在 fftw 中计算 3D 功率谱

c++ - 准备调用 ParseAST。 fatal error

c++ - 如何使用 Windows native Wifi 功能连接到请求网络安全 key 的 Wifi?