[英]C rewriting an array using function, avoiding pointers
i have searched thoroughly and could not find an answer to my question. 我已经进行了彻底搜索,找不到我的问题的答案。
i would like a function in my code to rewrite an already existing array. 我想在我的代码中的一个函数重写一个已经存在的数组。 i would like it to be local array-meaning an array that is defined and initialized inside main.
我希望它是局部数组-意味着在main内部定义和初始化的数组。 i would like to execute without using pointers.
我想不使用指针就执行。
i think it should be possible because of the fact that arrays are actually pointers(as far a read). 我认为应该是有可能的,因为数组实际上是指针(就读而言)。
this is my code, for what its worth: 这是我的代码,其价值:
#include<stdio.h>
void minusone_array_rewrite(int food_arr[5][2]);
int main()
{
int food_arr[5][2] = {0};
minusone_array_rewrite(food_arr[5][2]);
for (int i = 0; i < 5; i++)////just printing
{
printf("%d", food_arr[i][0]);
printf("%d", food_arr[i][1]);
}
return 0;
}
void minusone_array_rewrite(int food_arr[5][2]) {
for (int i = 0; i < 5; i++)
{
food_arr[i][0] = -1;
food_arr[i][1] = -1;
}
}
Well, as you said by yourself arrays in C are pointers themselves, the problem I see is initialization of your array and passing it to function minusone_array_initializer
. 嗯,就像您自己说的那样,C语言中的数组本身就是指针,我看到的问题是数组的初始化并将其传递给
minusone_array_initializer
函数。
The correct way would be : 正确的方法是:
#include<stdio.h>
void minusone_array_initializer(int food_arr[5][2]);
int main()
{
int food_arr[5][2];
minusone_array_initializer(food_arr);
for (int i = 0; i < 5; i++) {
printf("%d , %d \n",food_arr[i][0],food_arr[i][1]);
}
return 0;
}
void minusone_array_initializer(int food_arr[5][2]) {
for (int i = 0; i < 5; i++)
{
food_arr[i][0] = -1;
food_arr[i][1] = -1;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.