面试题高手请进!

wineyjz 2007-05-09 07:00:15
指出下面各个题目错误(只有一处)
1指出下列程序的错误
VOID B(ULONG *p)
{
*p=66*10000;
return;

}
VOID A()
{
unsigined short a = 10*1000;
B((ULONG*)(&a));
return;

}
...全文
170 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
过客猫2022 2007-05-10
  • 打赏
  • 举报
回复
!
yctin 2007-05-10
  • 打赏
  • 举报
回复
PPower(月亮光光,照地堂) 正确
B((ULONG*)(&a))才对 ^_^"
玄之丞 2007-05-10
  • 打赏
  • 举报
回复
不顧谁的編程規范?
勉励前行 2007-05-10
  • 打赏
  • 举报
回复
*p=66*10000;//這句沒錯,因為ULONG *p 就是這樣定義的,雖然是運行到這裡才造成越界。

是這句錯:B((ULONG*)(&a)); 不顧編程規范,強制使用不適用的函數。

cczlp 2007-05-10
  • 打赏
  • 举报
回复
a是两个字节,却要按四个字节赋值, 当然错了
yctin 2007-05-09
  • 打赏
  • 举报
回复
*p = 66*10000;
这里错

unsigned short
2 byte
0 ~ 65535

66 * 10000 = 660000 > 65535
比unsigned short的范围大了
yctin 2007-05-09
  • 打赏
  • 举报
回复
unsigined 打错字 ^_^

unsigned short a = 10*1000;

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧