这里的问题很困惑.C的新功能,如下例所示:
#include <stdlib.h>
#include <stdio.h>
void pass_char_ref(unsigned char*);
int main()
{
unsigned char bar[6];
pass_char_ref(&bar);
printf("str: %s", bar);
return 0;
}
void pass_char_ref(unsigned char *foo)
{
foo = "hello";
}
Run Code Online (Sandbox Code Playgroud)
据我所知,bar是一个无符号字符数组,在静态存储中将元素大小设置为6.我只想通过引用pass_char_ref()传递bar并在该函数中设置字符数组,然后将其打印回main().
小智 7
您需要将字符串复制到数组中:
void pass_char_ref(unsigned char *foo)
{
strcpy( foo, "hello" );
}
Run Code Online (Sandbox Code Playgroud)
然后在调用函数时,只需使用数组的名称:
pass_char_ref( bar );
Run Code Online (Sandbox Code Playgroud)
此外,该阵列不在"静态存储"中; 它是一个自动对象,在堆栈上创建,具有包含函数调用的生命周期.