c - C中的动态数组导致段错误

标签 c arrays dynamic

我这样定义了一个动态数组:

double   *n_data ;
int n_data_c = 0, n_cnt = 0;
n_data_c = count_lines_of_file("abnorm");
n_data = (double *)malloc(n_data_c * sizeof(double));

在循环中我计算距离并这样做:

n_cnt++;
n_data[n_cnt] = distance;

但它在此处返回段错误:n_data[n_cnt] = distance;

我想知道我是否做错了什么。

最佳答案

检查 malloc 返回了什么,如果返回 0,则失败。我认为更有可能是您的 n_cnt 超出了范围。如果它是负数,或者大于或等于 n_data_c,那么您将遇到段错误。

关于c - C中的动态数组导致段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21872616/

相关文章:

c - 单击箭头按钮时滚动条位置增加多少?

c++ - ImageMagick pthread.h 多重定义

c++ - 在 OpenSSL 中验证 RSA 公钥?

ios - 遍历数组并在 Swift 中增加计数器

Java - 数组输出 null

android - 多次在 ViewPager 中使用一个 Fragment

c - 多个目录下的头文件 : Best Practices

c++ - 为什么可以在 C++ 中的长度为 0 的数组中添加定义元素

php - 动态创建的 JavaScript 文件会被缓存吗?

c - 如何在 C 中的动态双指针中存储一行