以下代码是否正确?还是会是未定义的行为?
// myfile.c
static char x[10][10];
char* my_function() {
return x[0];
}
my_function
是在共享库中使用的,所以我认为在文件/编译单元之外访问返回值是不安全的(由于static
关键字)。
该变量在myfile.c之外x
是不可见的,但是由于它位于文件范围内,即它具有静态存储持续时间,因此它的生存期仍然是整个程序的生存期。
因此,在源文件之间返回指向静态数据的指针是有效的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句