导航:首页 > 编程语言 > java清空结构体

java清空结构体

发布时间:2022-01-03 19:49:03

Ⅰ c++结构体变量如何清空

struct student stu;
memset(&stu, 0, sizeof(stu));

Ⅱ memset清空结构体变量

将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值,
块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作,
其返回值为指向S的指针。
需要的头文件
<memory.h>
or
<string.h>
函数原型void
*memset(void
*s,
int
ch,
unsigned
n);
程序例#include
<string.h>
#include
<stdio.h>
#include
<memory.h>
memset函数
int
main(void)
{
char
buffer[]
=
"Hello
world/n";
printf("Buffer
before
memset:
%s/n",
buffer);
memset(buffer,
'*',
strlen(buffer)
);
printf("Buffer
after
memset:
%s/n",
buffer);
return
0;
}
输出结果:
Buffer
before
memset:
Hello
world
Buffer
after
memset:
************
编译平台:
Microsoft
Visual
C++
6.0
也不一定就是把内容全部设置为ch指定的ASCII值,而且该处的ch可为int或者其他类型,并不一定要是char类型。例如下面这样:
int
array[5]
=
{1,4,3,5,2};
for(int
i
=
0;
i
<
5;
i++)
cout<<array[i]<<"
";
cout<<endl;
memset(array,0,5*sizeof(int));
for(int
k
=
0;
k
<
5;
k++)
cout<<array[k]<<"
";
cout<<endl;
输出的结果就是:
1
4
3
5
2
0
0
0
0
0
后面的表大小的参数是以字节为单位,所以,对于int或其他的就并不是都乘默认的1(字符型)了。而且不同的机器上int的大小也可能不同,所以最好用sizeof()。


要注意的是,memset是对字节进行操作
所以上述程序如果改为
int
array[5]
=
{1,4,3,5,2};
for(int
i
=
0;
i
<
5;
i++)
cout<<array[i]<<"
";
cout<<endl;
memset(array,1,5*sizeof(int));//
注意
这里与上面的程序不同
for(int
k
=
0;
k
<
5;
k++)
cout<<array[k]<<"
";
cout<<endl;
输出的结果就是:
1
4
3
5
2
16843009
16843009
16843009
16843009
16843009
因为memset是以字节为单位就是对array指向的内存的5个字节进行赋值,每个都用ASCII为1的字符去填充,转为二进制后,1就是00000001,占一个字节。一个INT元素是4字节,合一起就是,就等于16843009,就完成了对一个INT元素的赋值了。

Ⅲ c语言中如何将结构中变量清空

可以利用memset函数对变量进行清空操作。

(3)java清空结构体扩展阅读

memset()函数原型是extern void *memset(void *buffer, int c, int count)

buffer:为指针或是数组,

c:是赋给buffer的值,

count:是buffer的长度.

这个函数在socket中多用于清空数组.如:原型是memset(buffer, 0, sizeof(buffer))

Memset 用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;

例:char a[100];memset(a, ‘/0’, sizeof(a));

memset可以方便的清空一个结构类型的变量或数组。

memset()的深刻内涵:用来对一段内存空间全部设置为某个字符,一般用在对定义的字符串进行初始化为‘ ’或‘/0’;例:char a[100];memset(a, ‘/0’, sizeof(a));

memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;例:char a[100],b[50]; memcpy(b, a, sizeof(b));注意如用sizeof(a),会造成b的内存地址溢出。

strcpy就只能拷贝字符串了,它遇到’/0’就结束拷贝;例:char a[100],b[50];strcpy(a,b);如用strcpy(b,a),要注意a中的字符串长度(第一个‘/0’之前)是否超过50位,如超过,则会造成b的内存地址溢出。

Ⅳ C语言里如何清空结构体内的数据

memset((char*)&test,0,sizeof(test));试试。我是这么做的·。 补充: 或许是for(i=o;i<10;i++)memset((char*)&test[i],0,sizeof(test[i]));//里面的i是你想要清空的那个变量 追问: 能详细讲解一下这两个地方吗(char*)&test \sizeof(test) 回答: 函数原型:memset(void *, int, size_t);(char*)&test 是第一个参数,表示test结构体的首地址&test强制转化为char型的。sizeof(test)是计算test结构体的大小0表示清空。 追问: sizeof()里面的结构体可以用结构体指针代替吗? 回答: 应该不行·。sizeof()括号里是数据类型,所以貌似我上面写错。应该是memset((char*)&test1[i],0,sizeof(test)); 追问: 好像我用指针也通过了,........竟然没报错,而且数据也确实清空了

Ⅳ 请问各位,如何用用memset清空结构体和用memcpy将读取到的数据拷贝给结构体里面的buff。

memset( &StructObj,0,sizeof(StructType));

memcpy(dstbuf,srcbuf,size);

Ⅵ c++怎么清空结构体数组里的数据

你想清空?那就是全部置0哦,比如 stru_data是一个结构体,可以这样:memset(&stru_data, 0, sizeof(stru_data)); Ps:stru_data是一个对象,如果是指针指向的话,上面就不用&,后面就是sizeof(/*里面是结构体的名字*/)

Ⅶ 如何清空结构体的内容

手动把指针和数组都设置为0(NULL)。

Ⅷ 定义了一个结构体,我想把结构体变量里面的内容清空,之后再继续用,怎么办怎么清空

这个很简单啊,memset就可以了。
例如:
struct A
{
int a;
int b;
};

A a;
......
memset(&a, 0, sizeof (A));
就可以继续使用了。

Ⅸ 如何清空结构体数组

对于数组删除,一般就是使用后面数组元素前移的操作,来覆盖前一元素,达到删除的效果。。。。

例如数组a[10],要删除a[5]这个元素,那么只需要把后面的元素前移一位就行了,也就是a[5]=a[6],a[6]=a[7],a[7]=a[8],这样子a[5]这个元素的内容就会被全部抹杀掉了。。。。

不过这里存在一个问题,你一个结构体数组前移的时候,如何判断有多少个元素要前移呢。。。。

所以我的做法是在结构体里面定义一个标示符int flag。。。。

当对这个结构体数组元素赋值时,如a[10].name="KING" 时,那么就是说下标值为10的元素是存在的,赋完值后,来个a[10].flag=1 来标记一下。。。。

这样做的话,我们可以进行这样的删除操作了,如删除下标值为5的元素——
int i=5;
for(int j=i+1;a[j].flag==1;i++,j++)
{
a[i]=a[j];
/* 结构体数组可以直接这样子做,它会自动把a[i]里面的变量等于a[j]里面对应的变量 */
}
a[i].flag=0;
/* 如果你里面原来有10个元素,那么删除了其中一个,那就剩下9个,a[9]那个位置应该为空,一一把里面的元素清空太麻烦,直接把它的标示符flag等于0,就表示该位置为空的 */

Ⅹ 怎么把结构体数组的1个数据清空

其实结构体和类有很大的相似性可在结构体内放置一个存储单元(即你现在这个结构体的数组或是vector),然后重载[]运算符,使lala[6]返回的内容是结构体中的结构体,已即你原来设计的那个结构体,然后设计一个成员函数用于,删除结构体数组中指定的元素。
memcpy(&lala[5], &lala[6], sizeof(struct student));
memset(&lala[6], 0, sizeof(struct student));

阅读全文

与java清空结构体相关的资料

热点内容
网络有个感叹号不能用怎么回事 浏览:739
面向应用的网络编程是什么 浏览:385
工程机械网站模板 浏览:874
微信表情手掌什么意思 浏览:987
word文件在电脑里打开是空白的 浏览:468
数据规约做了哪些事情 浏览:420
采集地理数据需要注意哪些 浏览:75
vivo的主题在哪个文件 浏览:492
少儿编程学的有什么用 浏览:42
linuxatd服务卡住 浏览:141
去掉手机屏幕文件夹 浏览:6
什么是outlook配置文件 浏览:457
微信注销设账号密码 浏览:728
网上国网app如何确认接入系统方案 浏览:98
其中的文件夹 浏览:474
红米note和iphone5s对比 浏览:351
excel文件没有保存还能恢复吗 浏览:248
stm32的dma的gps数据解析程序 浏览:45
钉钉软件里的数据存在哪里 浏览:663
花粉俱乐部是怎么样的app 浏览:840

友情链接