我这样定义了一个动态数组:
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/