C 在函数中填充数组
我在下面的代码中遇到了错误。你能帮我纠正一下吗?我是编程初学者C 在函数中填充数组,c,function,multidimensional-array,C,Function,Multidimensional Array,我在下面的代码中遇到了错误。你能帮我纠正一下吗?我是编程初学者 #include <stdio.h> #include <stdlib.h> int array1(int); 在构建项目时看到以下错误: ..\src\FunctionWithArray.c:在函数“array1”中: ..\src\FunctionWithArray.c:42:9:警告:从返回类型为“int”的>函数返回“int*[100]”会从指针生成整数,无需强制转换>[-Wint转换] 返回阵列
#include <stdio.h>
#include <stdlib.h>
int array1(int);
在构建项目时看到以下错误:
..\src\FunctionWithArray.c:在函数“array1”中:
..\src\FunctionWithArray.c:42:9:警告:从返回类型为“int”的>函数返回“int*[100]”会从指针生成整数,无需强制转换>[-Wint转换]
返回阵列1;
^~~~~~
..\src\FunctionWithArray.c:42:9:警告:函数返回局部变量的地址[-Wreturn local addr]
23:34:36生成失败。1个错误,3个警告。花了205ms
代码中有一些问题需要解决,首先,返回本地数组是一个坏主意,正如编译错误所表明的,当函数返回时,它的生存期将过期,之后再访问它,即使您修复了赋值,但不能这样做,调用。除此之外,还有一些其他小问题在下面的代码中修复和注释:
#include <stdio.h>
#include <stdlib.h>
void array1(int val, int Array1[][100]); // pass the array as argument
代码中有一些问题需要解决,首先,返回本地数组是一个坏主意,正如编译错误所表明的,当函数返回时,它的生存期将过期,之后再访问它,即使您修复了赋值,但不能这样做,调用。除此之外,还有一些其他小问题在下面的代码中修复和注释:
#include <stdio.h>
#include <stdlib.h>
void array1(int val, int Array1[][100]); // pass the array as argument
不能分配数组。此外,不能从函数返回本地定义的数组。请修复缩进,此代码无法读取。我无法使用返回数组值调用函数?@RamsidNv否,数组是本地的,您最好将其作为函数的参数传递。@anastaciu我没有得到,请解释一下?请注意,我刚刚开始学习C编程。@RamsidNv好的,我回答了解释问题的问题。由于您是一名初学者,如果您有兴趣在坚实的基础上学习该语言,请允许我向您介绍您不能分配数组。此外,不能从函数返回本地定义的数组。请修复缩进,此代码无法读取。我无法使用返回数组值调用函数?@RamsidNv否,数组是本地的,您最好将其作为函数的参数传递。@anastaciu我没有得到,请解释一下?请注意,我刚刚开始学习C编程。@RamsidNv好的,我回答了解释问题的问题。既然你是一个初学者,如果你有兴趣在坚实的基础上学习这门语言,让我推荐你
#include <stdio.h>
#include <stdlib.h>
void array1(int val, int Array1[][100]); // pass the array as argument
int main(void)
{
int num, array[100][100], ys, i, j;
setbuf(stdout, NULL);
printf("Print Fist Array Value: ");
if(scanf("%d", &num) != 1) // it's always a good idea to guard against input problems
{
// deal with bad input
}
array1(num, array); // execute the function, no assignment needed
printf("Do you want to print First Array? ");
scanf("%d", &ys);
if (ys == 1)
{
for (i = 0; i < num; i++)
{
for (j = 0; j < num; j++)
{
printf("%d ", array[i][j]); // format specifier needed
}
putchar('\n');
}
}
else
{
printf("Thanks, Not Printed!");
}
return EXIT_SUCCESS;
}
void array1(int val, int Array1[][100])
{
int i, j;
printf("Enter First Array Values: ");
for (i = 0; i < val; i++)
{
for (j = 0; j < val; j++)
{
scanf("%d", &Array1[i][j]);
}
}
}