与此问题相关.
以下代码有什么问题?
typedef char (*p)[20] ptr;
ptr myFunction () {
char sub_str[10][20];
return sub_str;
}
int main () {
ptr str;
str = myFunction();
}
Run Code Online (Sandbox Code Playgroud)
在语法:
更改
typedef char (*p)[20] ptr;
为
typedef char (*ptr)[20];
要理解像这样的typedef声明的语法.想象一下,您想要将类型T重命名为U.声明一个名为U的T类型的变量,并使用'typedef'作为声明的前缀.就这样.
语义上:
查看我和其他链接问题的答案.这仍然是未定义的行为