有关C语言的小问题

fly_zm 2001-06-06 08:50:00
下面的代码用memset将三个局部变量置为0,请问可能会有什么问题?

void DoSomeThing(...)
{
int i;
int j;
int k;

memset(&k, 0, 3*sizeof(int)); // 将i,j,k置为0
...
}
...全文
77 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjjohn 2001-06-06
  • 打赏
  • 举报
回复
哪个白痴出的题??
C语言的内存分配方式并不能保证一定是连续的,而且整型数的大小跟机器字长和C编译器的定义都有关系,用memset赋这种值,简直是从疯人院出来的人出的题
caiyi9000 2001-06-06
  • 打赏
  • 举报
回复
1.i和j不一定能赋上0
2.可能会破坏别的内存空间,因为给k赋0时,连续赋了3个int型内存空间。
鹰派 2001-06-06
  • 打赏
  • 举报
回复
问题大得很,i,j,k并不一定处于一连续空间。
fly_zm 2001-06-06
  • 打赏
  • 举报
回复
这是招聘单位出的试题
personnel 2001-06-06
  • 打赏
  • 举报
回复
memset(&i, 0, sizeof(int));
memset(&j, 0, sizeof(int));
memset(&k, 0, sizeof(int));

最好 i=j=k=0;
多简单。
xubin_sh 2001-06-06
  • 打赏
  • 举报
回复
为什么要这样写呢?
tracter 2001-06-06
  • 打赏
  • 举报
回复
这样没有实用价值,只是显示自己技巧的东西,还是别帖为妙!!
wjyasd 2001-06-06
  • 打赏
  • 举报
回复
天呢,这样的问题。
直接告诉他,这样是不对的。

i,j,k 的地址空间也不一定连续呀!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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