xxx.cpp中:
char arr1[][100] = {
“ttt”,
“vvv”
}
char arr2[][100] = {
“aaa”,
“bbb”
}
int aaa(){
for (int i = 0;i < 2;i++)
{
printf(">>>%s\n", arr1[i]);
}
for (int i = 0;i < 2;i++)
{
printf(">>>%s\n", arr2[i]);
}
}
int aa = aaa();
int main()
{
return 0;
}
执行结果为:
>>>ttt
>>>vvv
>>>
>>>
以上代码编为动态库,在我的项目代码中调用这个库就会出现上面的情况,另外写了简单的demo调用这个库就是正常的,另外如果在arr2 前面加上static或者const就都能正常输出aaa和bbb,可是arr1为啥就一直可以.
环境ubuntu18.04 gcc7.5,有没有大神

博主在Ubuntu 18.04环境下遇到动态库调用中char数组输出异常的情况,arr1仅输出前两个元素,而arr2在加上static或const后恢复正常。寻求解答关于为何arr1的行为不同于arr2的内存管理原因。
1955

被折叠的 条评论
为什么被折叠?



