【发布时间】:2020-03-15 14:53:50
【问题描述】:
C 语言 - Linux
我的程序上下文:读取用户输入的参数,满足要求后将参数传递给数组,并将数组传递给函数。该函数必须显示数组元素。出于某种原因,输出显示的是随机大数字,例如“-914536439”,这是错误的。
用户输入示例:./file 3 2 5 10 6
当前输出:数组元素为 0 0 0 -914536439 .. -914536430(错误!)
期望的输出:显示给定的数组元素,“当前数组元素是:3 5 10 6”
我认为我的 void 函数在某处出错了。我该如何解决这个问题,以便函数显示数组元素?
我的代码:
/* function to display element of modified array */
void function(int *arr)
{
int j, size;
size = sizeof(arr)/sizeof(arr[0]);
printf("Current array elements are:");
for (j=0; j < size; j++)
{
/* display array elements */
printf("%d ", arr[j]);
}
}
int main (int argc, int *argv[])
{
/* max array size is 100 */
int arr[100];
for (int i=0; i<argc; i++)
{
/*check if value of arguments is greater than value of argv[1] */
if (argv[i] > argv [1])
{
/* pass value of argument(s) to array named arr */
arr[i] = argv[i];
}
}
/* pass array arr to function */
function(arr);
/*other code*/
}
【问题讨论】:
标签: c arrays linux function parameter-passing