2


我有一个使用 Visual Studio 2010 在 C 下开发的应用程序。当我运行我的应用程序时,一切看起来都很好,直到它到达:

while ((row = mysql_fetch_row(result))) {
    t[k] = atof(row[num_fields - 1]);
    k++;
}

选择查询没有任何问题。出现异常消息:

未处理的 win32 异常发生在...

我读了一些文章,这些文章告诉我这是释放内存的问题。

我已经添加了:

mysql_free_result(result);

free(t);

但什么都没有改变。请帮忙。

谢谢你。

4

1 回答 1

0

首先,你能做的更好的是使用调试器运行。话虽如此,我可以看到一些可能产生异常的事情:

  • 如果 会发生什么num_fields==0?你会在row数组中得到一个异常
  • mysql_fetch_row在执行之前检查该行是否正确设置atof。例如,我会通过一些检查将相同的代码分成几行。
于 2018-05-21T08:33:17.227 回答