Chinaunix

标题: 结构体清空 [打印本页]

作者: sofa120    时间: 2008-07-10 09:40
标题: 结构体清空
请问,如何将结构体写入内存中的信息清除,以便再次对结构体进行写入
作者: lenovo    时间: 2008-07-10 09:42
man memset
作者: veking    时间: 2008-07-10 09:42

  1. struct TEST{
  2. ....
  3. }test;

  4. memset(test, 0, sizeof(TEST));
复制代码

作者: sofa120    时间: 2008-07-10 09:50
标题: 回复 #2 lenovo 的帖子
我是把信息写入结构体数组里的,用了memset,然后连续多次对其进行重新写入,每次写入的数组的长度不一样,但是在最后一次写入后,我打印出结构体数组的信息,但是却会出现上次写入的信息(上次写入的数组的长度比较长),,,,请问,这是我逻辑错了,还是怎样??
作者: zszjxh    时间: 2008-07-10 09:56
原帖由 sofa120 于 2008-7-10 09:50 发表
我是把信息写入结构体数组里的,用了memset,然后连续多次对其进行重新写入,每次写入的数组的长度不一样,但是在最后一次写入后,我打印出结构体数组的信息,但是却会出现上次写入的信息(上次写入的数组的长度 ...

那就每次写入之前memset
作者: sofa120    时间: 2008-07-10 10:28
那就每次写入之前memset




我是用一个函数把结构体数组给封装起来的,然后在另一个函数中调用这个函数,而且我也有在每次调用结构体函数之前用memset,不知道干吗,还是会在我几次反复写入后,再打印,会出现这个问题,,,, 请问,还会有什么情况下,出现这个问题????????
作者: kumbayaco    时间: 2008-07-10 10:33
原帖由 sofa120 于 2008-7-10 10:28 发表




我是用一个函数把结构体数组给封装起来的,然后在另一个函数中调用这个函数,而且我也有在每次调用结构体函数之前用memset,不知道干吗,还是会在我几次反复写入后,再打印,会出现这个问题,,,,:em ...



怀疑lz用的值传递
作者: zszjxh    时间: 2008-07-10 10:38
原帖由 kumbayaco 于 2008-7-10 10:33 发表



怀疑lz用的值传递

如果数组做参数,根本不存在值传递
作者: sofa120    时间: 2008-07-10 10:38
怀疑lz用的值传递



对不起,我是个初学者,不明白你说的内容,,,,能说的明白点的吗????
作者: zszjxh    时间: 2008-07-10 10:40
原帖由 sofa120 于 2008-7-10 10:28 发表




我是用一个函数把结构体数组给封装起来的,然后在另一个函数中调用这个函数,而且我也有在每次调用结构体函数之前用memset,不知道干吗,还是会在我几次反复写入后,再打印,会出现这个问题,,,,:em ...

你还是贴代码吧,我们没法猜
作者: sofa120    时间: 2008-07-10 10:46
原帖由 zszjxh 于 2008-7-10 10:40 发表

你还是贴代码吧,我们没法猜



我是用两个函数来实现的,一个是结构体函数,用来写如内容的,一个是调用结构体函数的函数,然后再每次调用之前用了memset ,,但是还是出现了这种情况,我现在是在外面,忘了带东西出来,所以代码,暂时不能帖,,,,,原谅,,,,请各位就说说有什么情况就可以了,,,我也好学习,学习,,在今后,不会犯这些错误,,,谢谢,,麻烦麻烦了,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
作者: kumbayaco    时间: 2008-07-10 12:58
原帖由 sofa120 于 2008-7-10 09:50 发表
我是把信息写入结构体数组里的,用了memset,然后连续多次对其进行重新写入,每次写入的数组的长度不一样,但是在最后一次写入后,我打印出结构体数组的信息,但是却会出现上次写入的信息(上次写入的数组的长度 ...


确定是 memset(array, 0, sizeof(struct Yours) * lengthofarray)?
作者: yourantianya    时间: 2008-07-10 13:01
use memset
作者: sofa120    时间: 2008-07-10 13:04
原帖由 kumbayaco 于 2008-7-10 12:58 发表


确定是 memset(array, 0, sizeof(struct Yours) * lengthofarray)?




确定,但是还是不知道怎么错,我想可能是调用的时候,不知道干吗会错了,但是我是在每次调用之前用了。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2