【发布时间】:2020-07-15 21:29:28
【问题描述】:
我正在尝试编写一个函数来将给定的文本字符串附加到我的 GTKTextBuffer 的末尾,但是我遇到了我认为是内存分配问题的问题?
所以,这是我编写的用于追加的函数:
void append_to_log(GtkTextBuffer *buffer, char* strToSave) {
GtkTextIter *iter;
gtk_text_buffer_get_end_iter(buffer, iter);
gtk_text_buffer_insert(buffer, iter, strToSave, strlen(strToSave));
}
当我尝试启动我的程序,并使用该函数添加“记录开始...\n”消息时...
append_to_log(loggingBuffer, "Logging started... \n");
...我收到此错误:
/home/csc/CLionProjects/SDS-CW/GUIs/Server/cmake-build-debug/SDS-CW
*** stack smashing detected ***: <unknown> terminated
但是,当我尝试手动添加第一行时,它工作正常:
gtk_text_buffer_set_text(loggingBuffer, "Logging started... \n", 20);
所以我尝试手动设置初始行,然后添加新行...
gtk_text_buffer_set_text(loggingBuffer, "Logging started... \n", 20);
append_to_log(loggingBuffer, "Logging continued... \n");
...我收到分段错误。
任何想法我哪里出错了,我可以如何解决这个问题?
非常感谢。
【问题讨论】:
标签: c memory segmentation-fault append gtk