首页 > 试题广场 >

关于下面程序说法正确的是( ...

[不定项选择题]
32位的平台下,关于下面程序说法正确的是(      )
class Item
{
private:
char *desc;
int storage;
public:
Item()
{
desc = new char[51];
}

void setInfo(char *dsrc, int num)
{
strcpy(desc,dsrc);
storage = num;
}
};

int main()
{
Item stock;

stock.setInfo("pen",20);

return 0;
}


  • main函数定义了一个stock对象占8个字节
  • storage和desc成员各占4个字节
  • 存在内存泄漏的问题
  • 存在编译错误
就没有人感觉内存有泄露吗?
发表于 2019-11-11 16:46:52 回复(7)
B选项,desc是指针变量,不是占四个字节的内存空间吗?
发表于 2019-11-24 19:00:01 回复(0)
C++类对象占用的内存为:
1.非静态成员变量总和
2.编译器为了CPU计算,作出的数据对齐处理(char会被补齐为4字节)
3.为了支持虚函数,产生的额外负担

对于本题,我认为B选项也正确
编辑于 2019-09-01 15:02:11 回复(4)
题目未说是多少位机,
32位机stock占  8个字节,
64位机stock占16个字节。
编辑于 2019-11-04 09:34:18 回复(4)
char* dest    4字节
int storage   4字节
无虚函数
Item为8字节
构造函数new的内存没有释放内存泄露
题目应该是选 错误的选项才对
发表于 2020-01-08 09:11:40 回复(0)
在题库里,这个题还有一道多选题,多选题的答案是A和B,选了一个的各位不要怀疑。
发表于 2020-06-10 16:14:29 回复(0)
<p>这题槽点太多,你也没说是32位系统啊,就占四字节了!</p><p><br></p>
发表于 2020-05-24 08:05:27 回复(0)
为啥class后边没分号???
发表于 2020-04-25 16:21:52 回复(1)
**题目
发表于 2020-04-12 22:15:38 回复(0)
没学过C++,只学过C……坑我
发表于 2020-04-10 22:49:47 回复(0)
没有说明是多少位机器
发表于 2020-04-06 17:22:56 回复(0)
ABCD都正确
发表于 2020-01-12 21:47:41 回复(0)
刚才做了一遍选ABC
发表于 2020-01-08 12:09:18 回复(1)
没内存泄漏吗
发表于 2019-10-24 18:26:34 回复(0)
函数不占用内存,指针四个,int四个,如果存在虚函数,虚表指针还会占用四个,如果前面有个char,考虑数据对齐,12个
发表于 2019-08-28 08:37:43 回复(0)