小编Toe*_*dev的帖子

如何在没有内存泄漏的情况下使用C++制作Qt GUI应用程序

我无法创建一个Qt GUI应用程序,在valgrind中没有超过1K'肯定丢失'字节.我已经尝试过这个,制作只展示一个QWidget的最小应用程序,扩展QMainWindow; 只是创建一个QApplication对象而不显示它或不执行它或两者都没有,但它们总是泄漏.

试图解决这个问题我已经读过,因为X11或glibc有错误,或者因为valgrind给出误报.在一个论坛帖子中,似乎暗示在main函数中创建一个QApplication-object并返回对象的exec()函数,就像在教程中所做的那样,是一种制作GUI的"简化"方法(并不一定好) , 也许?).

valgrind输出确实提到了libX11和libglibc,还提到了libfontconfig.其余的记忆损失,5个损失记录,发生在??? in libQtCore.so期间QLibrary::setFileNameAndVersion.

如果有一种更合适的方式来创建GUI应用程序,甚至可以防止其中的一部分发生,那么它是什么?如果任何valgrind输出只是噪声,我如何创建一个抑制正确的抑制文件?

编辑:谢谢你的意见和解答!
我并不担心丢失的几个KB本身,但如果我不必过滤几个错误的屏幕但通常可以从valgrind获得"OK",那么找到我自己的内存泄漏会更容易.如果我要压制警告,我最好知道它们是什么,对吧?
有趣的是看到接受的泄漏是多少!

c++ qt valgrind memory-leaks suppress-warnings

15
推荐指数
1
解决办法
7784
查看次数

写/读Common Lisp(SBCL)哈希表,或替代

我想写/读一个哈希表到/从磁盘,但它不是一个(print)能够对象.我不会知道关键名称,所以我想不出手动方式.我读到可能有特定于发行版的方法来做到这一点; 在SBCL有什么事吗?
我没有在SBCL手册或Google上找到任何内容.

如果没有,是否有另一种可存储的方法来保持绑定到字符串的整数列表,能够有效地修改这些列表,并且具有恒定或至少快于访问时间的访问时间?
二进制搜索树是否足以用alist实现,这对于创建基本数据库是一个好主意吗?

lisp hashtable sbcl common-lisp read-write

6
推荐指数
1
解决办法
1158
查看次数

Vim:从第一个单词到前一行的追加行

这应该太简单了,但我想知道很长一段时间并且没有看到这个问题,很难找到.

我经常想从一行中的某个地方删除到下一行代码的开头.例如,在C-ish语法中,假设我想删除第一个布尔值:

if (long_boolean_expression1 &&
    long_boolean_expression2) {
  /* code */
}
Run Code Online (Sandbox Code Playgroud)

得到:

if (long_boolean_expression2) {
  /* code */
}
Run Code Online (Sandbox Code Playgroud)

我可以0wdb.从第二行开始.(有什么更短或更直观吗?必须有一个命令,0w但我找不到它.)

编辑HTML时,似乎没有任何作用.每当我需要做一些像这样的事情:

<table>
  <tr>
Run Code Online (Sandbox Code Playgroud)

进入这个:

<table><tr>
Run Code Online (Sandbox Code Playgroud)

我最终在插入模式下使用退格键进行操作,因为我在普通模式下尝试执行此操作会失败,通常会删除太多而让我失望:

<table<tr>  <!-- Fail! -->
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢?

vim

1
推荐指数
2
解决办法
1662
查看次数