gpt4 book ai didi

c++ - 试图制作一个包含字符串 C++ 的链表

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:51 25 4
gpt4 key购买 nike

我目前正在研究一个链表,该链表将包含包含信息字符串的字符串。我正在使用一个看起来像这样的结构:

struct symbolTable
{
string lexeme;
string kind;
string type;
int offSet;
symbolTable *nextSymbol;
symbolTable *nextTable;
};

插入函数看起来有点像这样:

void MPParser::insertToSymbolTable(string identifier, string type, string kind)
{
tempOffset++;
symbolTable *tempNode;
tempNode = (symbolTable*)malloc(sizeof(symbolTable));
tempNode->kind = kind; //Run Time error Here..
tempNode->type = type;
tempNode->lexeme = identifier;
tempNode->offSet = tempOffset;
tempNode->nextTable = NULL;
tempNode->nextSymbol = root;
root = tempNode;
}

程序编译,然后当我尝试运行并插入链表时,我得到这个错误:

Unhandled exception at 0x5A6810D0 (msvcr110d.dll) in mpcompiler.exe: 0xC0000005: Access   violation writing location 0xCDCDCDCD.

在指针中将一个字符串分配给另一个字符串的正确方法是什么?还是我做错了什么?任何帮助,将不胜感激!

谢谢!

最佳答案

使用 new 而不是 malloc() 以便正确构造字符串对象:

tempNode = new symbolTable;

然后在需要释放节点时使用delete:

delete node;

关于c++ - 试图制作一个包含字符串 C++ 的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15750087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com