我想将B整型数组指针传递到func函数中,并能够在那里更改它,然后在主函数中查看更改。
我希望能将B整型数组指针传入func函数中并修改它,在主函数中查看其修改后的值。
#include <stdio.h>
int func(int *B[10]){
}
int main(void){
int *B[10];
func(&B);
return 0;
}
上述代码给我一些错误:
In function 'main':|
warning: passing argument 1 of 'func' from incompatible pointer type [enabled by default]|
note: expected 'int **' but argument is of type 'int * (*)[10]'|
编辑:新代码:
#include <stdio.h>
int func(int *B){
*B[0] = 5;
}
int main(void){
int B[10] = {NULL};
printf("b[0] = %d\n\n", B[0]);
func(B);
printf("b[0] = %d\n\n", B[0]);
return 0;
}
现在我遇到这些错误:
||In function 'func':|
|4|error: invalid type argument of unary '*' (have 'int')|
||In function 'main':|
|9|warning: initialization makes integer from pointer without a cast [enabled by default]|
|9|warning: (near initialization for 'B[0]') [enabled by default]|
||=== Build finished: 1 errors, 2 warnings ===|
int *
的数组的指针,但是func
期望的是一个int **
(它应该是指向一个包含(预计为10个)int *
的数组的第一个元素的指针)。如何修复这个问题取决于func
的功能。 - Daniel FischerB
。由于B
实际上是一个数组,传递&B
通常没有用,因为B
不能被更改(但其内容可以被更改,这正是您想要做的)。 - Daniel Fischerfunc
应该这样声明:int func(int (*B)[10])
。 - newacct