Cookie_Crypto:这么简单?
0 点赞 评论 收藏
分享
查看6道真题和解析 投递百度等公司10个岗位 >
0 点赞 评论 收藏
分享
求阿里蚂蚁offer:sizeof一个空的结构体,返回什么
答:1。这是因为在 C++ 中,每个对象都必须有一个独一无二的地址,所以即使结构体中没有任何成员,它也必须占用至少 1 个字节的空间,以便能够被区分开来。
然而,我发现在有的编译器上如下代码是可以运行的:
struct a{
char b[0];
};
int main(){
a b;
cout << sizeof(b) << endl;
printf("%p\n",&b);
a c;
cout << sizeof(c) << endl;
printf("%p\n",&c);
return 0;
}
并且输出如下:
0
0x7fff2e25db36
0
0x7fff2e25db37
所以说即使sizeof返回为0了,仍然占用了1个字节的大小。我觉得很神奇,有大佬帮忙解释以下吗
查看15道真题和解析 投递百度等公司10个岗位 >
0 点赞 评论 收藏
分享
2023-07-20 21:24
哈尔滨工业大学(深圳) C++ 🌸孝子:先对原数组维护一个limit的布尔数组 表示当前位后面的数位的最小值是否比可选数字中的最小值小。然后从第一位开始,用二分查找去可选数组中找到≤该数位值的最大值,如果最大值小于数位值,则直接填写该最大值,后面全部设为9。否则,判断limit,如果为true,表示该位置无法选择跟数位相同的值,填写最大值前一位数,后面全部设为9;如果为false,则填写该数位值,并继续下一位的选择。
投递字节跳动等公司10个岗位
0 点赞 评论 收藏
分享
关注他的用户也关注了: