从 C 中的函数返回 STR 的问题
Problem in Returning STR from Function in C
你好,很抱歉我英语说得不好。
我知道这是重复的,但我有一个问题,我从来没有找到问题的答案。
每当我通过 GCC 编译此代码时显示此错误:
代码:
const char* myFunction()
{
static char array[] = "my string";
return array;
}
char a[101];
a=myFunction();
错误:
Whosebug.c: In function ‘main’:
Whosebug.c:51:2: error: assignment to expression with array type
16 | a=myFunction();
| ^
当我在printf函数中直接使用函数的return值时,并没有报错
printf ("%s", myFunction());
我不知道这是什么问题。
抱歉英语不好。
那是因为,在C中,这与将指向array
的指针赋值给a
是一样的,但是你已经“初始化”了a
.
我不知道你想达到什么目的,但如果你想复制字符串,请使用
strcpy(a, myFunction());
或者,如果你想要指针,试试
const char *a;
a=myFunction(); //If you try using printf with a it will work.
你好,很抱歉我英语说得不好。
我知道这是重复的,但我有一个问题,我从来没有找到问题的答案。
每当我通过 GCC 编译此代码时显示此错误: 代码:
const char* myFunction()
{
static char array[] = "my string";
return array;
}
char a[101];
a=myFunction();
错误:
Whosebug.c: In function ‘main’:
Whosebug.c:51:2: error: assignment to expression with array type
16 | a=myFunction();
| ^
当我在printf函数中直接使用函数的return值时,并没有报错
printf ("%s", myFunction());
我不知道这是什么问题。 抱歉英语不好。
那是因为,在C中,这与将指向array
的指针赋值给a
是一样的,但是你已经“初始化”了a
.
我不知道你想达到什么目的,但如果你想复制字符串,请使用
strcpy(a, myFunction());
或者,如果你想要指针,试试
const char *a;
a=myFunction(); //If you try using printf with a it will work.