1樓:匿名使用者
1.memset函式的原型void *memset(void *s, char ch, size_t n);
函式的第一個形式引數是指標型別,所以實參因為一個地址,即&a注意&a與a是不同的.a是結構體變數名,而&a是變數a的地址.
2.另外memset()是一個庫函式函式,需要加標頭檔案#include
3.正如你所說的全域性與主函式內定義變數a是有一點區別源**如下:
#include
#include
typedef struct ss
tent;
//tent a;
int main()
主函式內執行結果:
全域性變數執行結果:
這個沒警告的.
已上在vc6.0下的結果
為嘛第二個沒警告,暫時不清楚.但第一個有警告是合理的.
2樓:
memset(&a,0,sizeof(a));
#include
#include
typedef struct ss
tent;
//tent a;
int main()
3樓:楓若神明
樓主你好:
你這裡面有幾個錯誤:
呼叫memset函式需要#include
memset的第一個引數為一個指標,因此你需要memset(&a, 0, sizeof(a))這樣去操作
memset的具體使用你可以通過在命令列輸入:
man memset
來檢視。
全域性變數和區域性變數時都可以的。**見下:
#include
#include
typedef struct ss
tent;
//tent a;
int main()
有問題請追問!
祝樓主學業進步!
c語言指標初始化,c語言指標初始化
int array 4 5 6 一級指標,指標向一個陣列,該陣列為int 4 5 6 int a 4 5 6 pa 二級指標,指向上一行的一級指標 對於動態分配的結構,不可能用陣列這種形式來儲存的。因為陣列的下標必須在編譯時刻明確為常量。樓主用的c 可以考慮用stl的vector。另外,我覺得本身用...
c語言指標初始化的問題
如果你是需要賦字串的,不需要給它分配空間,但是如果你要給指標結構體賦某個值,那是需要給指標指定記憶體空間的,所以你上面的程式只要這樣就好了 main s的話,就是後面的str1之類的東西是要一個地址 main str2 bushishabi 去掉 printf s n s n str1,str2 要...
c語言定義整型陣列並未初始化資料
首先要清楚什麼是初始化 在宣告變數的同時賦值就是初始化。而在其後的賦值語句就不是初始化。一般來說,如果你不給變數一個確定的值,就直接引用它,則系統不能保證執行的唯一性,而這是我們程式所不允許的。所以我們一般用初始化的方法來確定其值。如char str 100 引用memset str,sizeof ...