在函数中创建动态数组(calloc),并在main中使用它
很抱歉提出一个新问题,但我在论坛或谷歌周围找不到这样的问题 无论如何,我的问题是: 在Main中,我声明了一个数组“insieme_A”和一个包含数组长度“nums_element_A”的变量 然后,打印阵列:在函数中创建动态数组(calloc),并在main中使用它,c,arrays,function,pointers,dynamic,C,Arrays,Function,Pointers,Dynamic,很抱歉提出一个新问题,但我在论坛或谷歌周围找不到这样的问题 无论如何,我的问题是: 在Main中,我声明了一个数组“insieme_A”和一个包含数组长度“nums_element_A”的变量 然后,打印阵列: int counter; printf("\nL'array è costituito dai seguenti elementi: \n"); for (counter = 0; counter < nums_element_A; ++counter) pri
int counter;
printf("\nL'array è costituito dai seguenti elementi: \n");
for (counter = 0; counter < nums_element_A; ++counter)
printf("%lf \n", insieme_A[counter]);`
这是因为在代码中,
get\u array
函数的参数是按值传递的
要更正它,请将其用作int get\u数组(双**数组)
,并相应地更改代码。以下是代码片段:
您正在向get函数发送数组val的副本-因此您并没有真正修改它在main中指向外侧的位置-您应该尝试发送get_数组(double*array[])哇,非常感谢!你解释得很容易,也可以理解。再次感谢,终于成功了!
int counter;
printf("\nL'array è costituito dai seguenti elementi: \n");
for (counter = 0; counter < nums_element_A; ++counter)
printf("%lf \n", insieme_A[counter]);`
int get_array(double array[])
{
double element;
int nums_elements,
counter;
do
{
printf("Quanti elementi deve contenere l'insieme? ");
scanf("%d", &nums_elements);
}
while (nums_elements <= 0);
array = (double *)calloc(nums_elements, sizeof (double));
for (counter = 0;
counter < nums_elements;
++counter)
{
printf("Inserire valore %d-->", counter+1);
scanf("%lf",
&element);
array[counter] = element;
}
for(counter=0;counter<nums_elements;++counter){
printf("%lf",array[counter]);
}
return (nums_elements);
}
int get_array(double **array)
{
int nums_elements, counter;
do
{
printf("Quanti elementi deve contenere l'insieme? ");
scanf("%d", &nums_elements);
} while (nums_elements <= 0);
*array = (double *)calloc(nums_elements, sizeof (double));
for (counter = 0; counter < nums_elements; ++counter)
{
printf("Inserire valore %d-->", counter+1);
scanf("%lf", &((*array)[counter]));
}
return (nums_elements);
}
int count;
double *insieme_A;
count = get_array(&insieme_A);