【发布时间】:2013-01-02 07:17:23
【问题描述】:
C题
你好,
我将一个双指针传递给一个函数以分配一个双精度数组并用 10.10 初始化函数内部的数组;
我执行以下操作,但是当我在 main 中访问数组时出现分段错误;
void function(double **array, int size){
*array = (double*) malloc(size * sizeof(double));
int i;
for(i=0;i<size;i++){
*array[i] = 10.10;
}
}
int main(){
double *array = NULL;
function(&array,20);
printf("array[0] = %lg\n",array[0]);// here is where I get segmentation fault
}
有什么帮助吗?
【问题讨论】:
-
“这是我得到分段错误的地方”不在你得到段错误的那一行。
-
作为旁注:
double*的转换是 a) 不必要的,b) 错误的,因为你真正拥有的是double** -
@Andreas:你是对的(a)但不是(b);-)
-
@AndreasGrapentin 这是相当错误的,因为它不安全。
-
@PaulR 哎呀,你当然是对的。
标签: c arrays function pointers segmentation-fault