0

我目前正在运行一个可以编译但运行时崩溃的 c++ 文件。

当我运行程序时,我打开调试器并得到以下行:

程序收到信号 SIGSEGV,分段错误。/lib/libc.so.1 中的 strcat () 中的 0xff0ab210

我不知道那条线是什么意思。

你可以解释吗?

编辑:

我收到了关于我如何在程序中使用 strcat 的回复。我所使用的只是与 atoi 方法一起使用,以便将字符串转换为十六进制数。

Edit2:我在使用 strcat 库的代码上看到了一些东西,它是 .append 函数。那会是问题的原因吗?

4

2 回答 2

0

如果 seg 错误来自 strcat,则很可能发生以下情况之一:

  1. 您的源是一个非空终止的 C 字符串(格式错误的字符串)。
  2. 目标字符串中分配的内存量不足以同时存储源和目标 + 1(最后的 null)。

检查这两种情况是否都包括在内,希望您不会再看到 SIGSEGV。

于 2013-02-22T01:34:11.593 回答
0

那是分段错误。通常这意味着您正在尝试访问尚未分配的内存。由于您使用strcat的是我猜测目标字符串尚未分配或分配的内存不足。

于 2013-02-22T01:31:04.470 回答