你好,對不起,我的英語說得不好。
我知道這是重復的,但我有一個問題,我從來沒有找到我的問題的答案。
每當我通過 GCC 編譯此代碼時顯示此錯誤:代碼:
const char* myFunction()
{
static char array[] = "my string";
return array;
}
char a[101];
a=myFunction();
錯誤 :
StackOverFlow.c: In function ‘main’:
StackOverFlow.c:51:2: error: assignment to expression with array type
16 | a=myFunction();
| ^
當我直接在 printf 函式中使用函式的回傳值時,它不會出錯。
printf ("%s", myFunction());
我不知道這是什么問題。抱歉英語不好。
uj5u.com熱心網友回復:
這是因為,在 C 中,這與將指標分配給 相同array,a但您已經“初始化”了a。
我不知道您要達到什么目的,但是如果您想復制字串,請使用
strcpy(a, myFunction());
或者,如果您想要指標,請嘗試
char *a;
a=myFunction(); //If you try using printf with a it will work.
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/483325.html
