带有char指针的C类返回垃圾
发布时间:2020-12-16 10:42:19 所属栏目:百科 来源:网络整理
导读:我创建了一个类“Entry”来处理Dictionary条目,但在我的main()中,我创建了Entry()并尝试cout char类型的公共成员,但我得到了垃圾.当我在调试器中查看监视列表时,我看到正在设置的值,但是一旦我访问这些值,就会有垃圾.任何人都可以详细说明我可能会遗失的内容
我创建了一个类“Entry”来处理Dictionary条目,但在我的main()中,我创建了Entry()并尝试cout char类型的公共成员,但我得到了垃圾.当我在调试器中查看监视列表时,我看到正在设置的值,但是一旦我访问这些值,就会有垃圾.任何人都可以详细说明我可能会遗失的内容吗?
#include <iostream> using namespace std; class Entry { public: Entry(const char *line); char *Word; char *Definition; }; Entry::Entry(const char *line) { char tmp[100]; strcpy(tmp,line); Word = strtok(tmp,",") + ' '; Definition = strtok(0,") + ' '; } int main() { Entry *e = new Entry("drink,What you need after a long day's work"); cout << "Word: " << e->Word << endl; cout << "Def: " << e->Definition << endl; cout << endl; delete e; e = 0; return 0; } 解决方法
Word和Definition都指向tmp,它已超出范围,因此包含垃圾.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |