我在使用指针时遇到了一些麻烦。
这是他们的声明(主要):
int *dot_positions = (int *)malloc(sizeof(int));
char *str = (char *)malloc((MAX_N + 1) * sizeof(char));
其中 MAX_N 为 100,是字符串的限制。点位置[0] = -1;
我将一个值添加到 'dot_position' 的第一个位置,然后,在运行时,我调用以下函数以添加其他值。
int add_dot_to_array(int *array, int position, int array_len) {
array = (int *)realloc(array, array_len + 1);
array[array_len] = position;
return array_len + 1;
}
在 main() 结束时,我释放了指针:
free(str);
free(dot_positions);
但这会导致我的程序崩溃。我在 Windows x64 机器上使用 Orwell Dev-C++ 和 Mingw。我也确定这些指针不为 NULL。怎么了?提前致谢!