導航:首頁 > 編程語言 > 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清空結構體相關的資料

熱點內容
少兒編程學的有什麼用 瀏覽:42
linuxatd服務卡住 瀏覽:141
去掉手機屏幕文件夾 瀏覽:6
什麼是outlook配置文件 瀏覽:457
微信注銷設賬號密碼 瀏覽:728
網上國網app如何確認接入系統方案 瀏覽:98
其中的文件夾 瀏覽:474
紅米note和iphone5s對比 瀏覽:351
excel文件沒有保存還能恢復嗎 瀏覽:248
stm32的dma的gps數據解析程序 瀏覽:45
釘釘軟體里的數據存在哪裡 瀏覽:663
花粉俱樂部是怎麼樣的app 瀏覽:840
ce文件夾 瀏覽:498
java電影院售票系統代碼 瀏覽:369
js輪播加入動畫效果 瀏覽:391
pic電平變化中斷程序 瀏覽:724
星圖數據在京東哪裡 瀏覽:399
小蘋果海外寫手 瀏覽:253
怎麼從安卓轉移數據到舊iphone 瀏覽:89
loli視頻文件怎麼看 瀏覽:732

友情鏈接