我认为通过引用以错误的方式传递我的数组因为我有很多警告.你可以帮帮我吗?
void func (char **array[], char b){
*array[0]=&b;
}
int main () {
char *array_in_main[SIZE];
char b_in_main='b';
func (*array_in_main, b_in_main);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
是的我知道.这是一个毫无意义的例子,但我对语法有疑问.请检查一下!
你有一个观点问题.
首先,您将错误的类型传递给您的函数.如果要修改函数中的数组,则不必使用指向数组的指针传递数组,因为数组会衰减到指向其第一个元素的指针.
其次,您尝试使用的地址b
是局部变量,其范围以函数结束func
,您不能在外部使用它.
此代码将起作用:
#include <stdio.h>
#define SIZE 10
void func (char *array[], char *b)
{
array[0]=b;
}
int main ()
{
char *array_in_main[SIZE];
char b_in_main='b';
func (array_in_main, &b_in_main);
return 0;
}
Run Code Online (Sandbox Code Playgroud)