c++全局变量初始化无效bug

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

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,有没有大神

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值