我正在尝试在 C 中复制 Matlab 和 numpy (python) 中的 linspace 函数,但是,我不断收到关于取消引用 NULL 指针的警告。
我是 C 语言的新手,之前只在 Matlab、python 和 lua 中工作过,指针是非常值得尝试的东西!
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
double* linspace(double init, double fin, int N) {
double *x;
int i = 0;
double step = (fin - init) / (double)N;
x = (double*)calloc(N, sizeof(double));
x[i] = init; /*<=== Line 14*/
for (i = 1; i < N; i++) {
x[i] = x[i - 1] + step;
}
x[N - 1] = fin;
return x;
}
int main() {
double *x_array = linspace(0, 10, 1000);
printf(&x_array);
free(x_array);
return 0;
}
我得到了确切的警告:
Warning C6011 Dereferencing NULL pointer 'x'. Line 14
显然,我确定这只是一个菜鸟错误,但我不确定如何对其进行排序!
谢谢。