在下面的代码中使用指针

use*_*783 2 c++ coredump pointers

1.NODE **ptr = (NODE **)node
NODE  *delPtr = *ptr;
obj->addList(delPtr->strKey);

2.NODE **ptr = (NODE **)node;
obj->addList(*ptr->strKey);
Run Code Online (Sandbox Code Playgroud)

我正在分析这个我正在制作的核心转储程序,功能似乎是一样的.这两个声明有什么区别?第二个也会进行核心转储吗?请帮忙.

sim*_*onc 6

运算符优先级->的引用操作之前进行评估*,以便

obj->addList(*ptr->strKey);
Run Code Online (Sandbox Code Playgroud)

实际上是

obj->addList(*(ptr->strKey));
Run Code Online (Sandbox Code Playgroud)

如果您想使用此表单,则需要使用括号 *ptr

obj->addList((*ptr)->strKey);
Run Code Online (Sandbox Code Playgroud)