gpt4 book ai didi

c++ - = txtSelect->GetValue(); C++,段错误。这很奇怪

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

在 Code::Blocks on Linux 中的一个简单的 C++ 测试应用程序中,我有一个名为 txtSelect 的 wxTextCtrl,它包含:'SELECT * FROM user;'

当我运行以下命令时,崩溃!

void refreshGrid()
{
wxTextCtrl *txtSelect;
wxString sqlLine = txtSelect->GetValue();
}

gdb 结果如下:

(gdb) run
Starting program: /home/dan/Documents/wxW_Projs/wxSQLi_417/bin/Debug/wxSQLi_417
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0x0000000000410662 in refreshGrid ()
at /home/dan/Documents/wxW_Projs/wxSQLi_417/wxSQLi_417Main.cpp:199
199 wxString sqlLine = txtSelect->GetValue();

(gdb) bt
#0 0x0000000000410662 in refreshGrid ()
at /home/dan/Documents/wxW_Projs/wxSQLi_417/wxSQLi_417Main.cpp:199
#1 0x0000000000410593 in wxSQLi_417Frame::OnButton2Click (this=0x7143c0,
event=...)
at /home/dan/Documents/wxW_Projs/wxSQLi_417/wxSQLi_417Main.cpp:183
#2 0x00007ffff6d461fe in wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#3 0x00007ffff6ecc6e7 in wxEvtHandler::ProcessEventIfMatchedan(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#4 0x00007ffff6eccace in wxEvtHandler::SearchDynamicEventTable(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#5 0x00007ffff6eccb5f in wxEvtHandler::TryHereOnly(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#6 0x00007ffff6eccc13 in wxEvtHandler::ProcessEventLocally(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#7 0x00007ffff6eccc75 in wxEvtHandler::ProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
#8 0x00007ffff75f3de8 in wxWindowBase::TryAfter(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_gtk2u_core-3.0.so.0
#9 0x00007ffff6ecc9e7 in wxEvtHandler::SafelyProcessEvent(wxEvent&) ()
from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
---Type <return> to continue, or q <return> to quit---

我在同一台 PC 上还有另一个应用程序,它有一个简单的密码演示,它使用相同的简单代码并完美运行,还有许多其他应用程序。

非常感谢任何建议。

最佳答案

txtSelect 指向任何地方。您应该创建一个指针指向的对象,然后使用它,如下所示:

wxTextCtrl *txtSelect = new wxTextCtrl();
wxString sqlLine = txtSelect->GetValue();

如果分配失败 new 抛出异常 std::bad_alloc

关于c++ - = txtSelect->GetValue(); C++,段错误。这很奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43485753/

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