gpt4 book ai didi

c - 从函数 C 分配数组和赋值

转载 作者:行者123 更新时间:2023-12-04 00:44:07 25 4
gpt4 key购买 nike

C题

你好,

我将一个 double 指针传递给一个函数以分配一个 double 组并在函数内部初始化数组,假设为 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


}

有什么帮助吗?

最佳答案

您违反了运算符优先级。

改变:

for(i=0;i<size;i++){
*array[i] = 10.10;
}

到:

for(i=0;i<size;i++){
(*array)[i] = 10.10;
}

请注意,如果您在启用警告的情况下进行编译(例如 gcc -Wall ...),您的编译器会为您捕捉到这一点。 始终在启用警告的情况下进行编译,并且始终注意、理解并修复任何警告。

关于c - 从函数 C 分配数组和赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14401301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com