当前位置:   article > 正文

c++常见问题答案_c++课程设计答辩常见问题及答案

c++课程设计答辩常见问题及答案

10、答案在本博客其他文章中

11、线程有可能和其他线程共享一些资源,比如,内存,文件,数据库等。当多个线程同时读写同一份共享资源的时候,可能会引起冲突。这时候,我们需要引入线程“同步”机制,即各位线程之间要有个先来后到,不能一窝蜂挤上去抢作一团。

12、(1)malloc只会按照用户的指定大小,申请一块内存,如果分配的内存小于使用内存,将引起错误。new能够识别用户需要的需要申请内存的数据类型,进行计算需要的大小再给用户分配内存。(2)、malloc返回类型为void *,而new能够根据接收的类型自动转换(3)new 能够自动调用构造函数和析构函数进行初始化,malloc不能。

 

23、progma pack(n)

指定结构体对齐方式!#pragma pack(n)来设定变量以n字节对齐方式。n字节对齐就是说变量存放的起始地址的偏移量有两种情况:第一、如果n大于等于该变量所占用的字节数,那么偏移量必须满足默认的对齐方式,第二、如果n小于该变量的类型所占用的字节数,那么偏移量为n的倍数,不用满足默认的对齐方式。结构的总大小也有个约束条件,分下面两种情况:如果n大于所有成员变量类型所占用的字节数,那么结构的总大小必须为占用空间最大的变量占用的空间数的倍数;

  否则必须为n的倍数。下面举例说明其用法。

#pragma pack(push) //保存对齐状态
#pragma pack(4)//设定为4字节对齐
struct test
{
char m1;
double m4;
int m3;
};
#pragma pack(pop)//恢复对齐状态
为测试该功能,可以使用sizeof()测试结构体的长度!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/989569
推荐阅读
相关标签
  

闽ICP备14008679号