1樓:匿名使用者
定義成struct list *試試呢?
struct list* creat(char name,int priority,int time)
2樓:匿名使用者
同學,你注意到了create()函式裡面,你又定義了一句:
list pr;
了麼?這句話時關鍵,首先,你在main 函式(我猜應該是main吧)中寫道:
list pr1=creat("p1",2,1);
insert(&pr1);
看,你這個pr1是個區域性變數吧?只在main()中有效的。而你上面那個create中定義的呢?
也是個區域性變數,只在create()中有效。所以,即使你在create()中費勁全力為pr賦值。等呼叫完create()後,pr還是會消亡的,回到main,時,這裡的pr1就是另一個list變數了。
總而言之,creat()裡面的pr和main()裡面的pr1是完全不同的兩個變數。要想讓他們變成一個變數。可選用指標傳參。或者定義成全域性變數。
另外,我一看到你的描述的那個「燙」字,就知道你用的是vc6.0吧?呵呵
3樓:
你的creat函式裡面的pr只是區域性變數,出了這函式範圍就沒用了,怎麼返回給pr1?
建議把其弄成形參。
c語言結構陣列初始化的問題
4樓:匿名使用者
你只初始了und[0]
struct undergraduate
und[20]= ,,,
,... ...};
c語言中怎麼把一維陣列初始化為全零啊,不用迴圈
5樓:匿名使用者
下面3種方法:
1.int arr[10]=;
如果只對陣列的一部分進行初始化,則編譯器將把其他元回素設定為0。因此,答當只將第一個元素初始化為0時,編譯器會自動將其他元素設為0 (就像前一句說的那樣)。
2.int arr[31]={};
3.用memset函式在程式開始時初始化陣列。比如:
int arr[1024];
memset(arr, 0, 1024); //清零
6樓:幻の上帝
2種方法:
1.靜態變數制(全域性變數、靜態區域性變數)即使沒有初始化列表,也會自動全部初始化填充0。
2.對於區域性自動變數,只要初始化列表存在,即使沒有在列表中的部分也會被初始化填充0。所以只要使初始化列表全為零即可。
例如ls所說的int a[10] = ;。注意這裡陣列大小不能省略,否則初始化列表會被當做陣列的全部內容。
----
至於memset,類似於迴圈批量賦值(只是交給庫函式實現了而已),並非初始化。(其實迴圈不也是賦值麼- -。)
1l用法有誤,應為memset(陣列地址, 0, sizeof(陣列變數)),第三個引數應該是陣列所佔空間大小而不是陣列的元素個數(長度)。
使用memset前需#include。
----
[原創回答團]
7樓:天雲一號
具體初始來化方法可以參考如下程源序段:(方法bai一)int a[5] = ; // 將整型陣列a的每du個元素都初始化為
zhi0
或者也可以用如下方dao法進行初始化:(方法二)int a[5] = ; // 將整型陣列a的每個元素都初始化為0,初始化效果同上
方法一的初始化方法是將陣列元素都初始化為同一個數值;
方法二的初始化方法可以分別對陣列的每個元素進行初始化,每個元素的數值可以不同。
8樓:匿名使用者
設定一個靜態陣列,就預設0了
如 static int a【8】;
9樓:陽光上的橋
例子:int i,j,ok[10];
memset(ok,0,sizeof(ok));
memset就能完成你的功能。
10樓:匿名使用者
很簡單 只要初始化第一個就行可以了,其他的會自動初始化為0,如下
int a[size]=;
11樓:匿名使用者
memset(陣列地址,0,陣列長度);
12樓:匿名使用者
int a[10]=;
13樓:匿名使用者
vc 裡可以用 int a[size] = ;
不行的話就用 static int a[size] = ; 吧....
c語言,結構體中的陣列怎麼賦值,?
14樓:yesyes科
1、首先開啟vs2010軟體,新建一個專案,如圖所示。
2、裡面包含標頭檔案,如圖所示。
3、然後輸入入口函式main。
4、接著定義一個結構體,宣告結構體變數,如圖所示。
5、然後給結構體裡面的成員變數賦值。
6、最後列印結構體成員,輸出結果就完成了。
15樓:老朱
s.a[0]=1;
s.a[1]=2;
16樓:
你程式中的那種賦值方式只能在陣列定義的時候賦值,定義完成後,就要一個一個的賦值。比如:s.
a[0] = 1;s.a[1] = 2;如果賦值有一定規律的話,可以用for迴圈;如果賦的值一樣的話,可以用 memset(s.a,0,sizeof(s.
a));,memset一般用於陣列初始化和清零。
17樓:匿名使用者
如果沒記錯的話只能是陣列初始定義的時候才可以這樣賦值。
只能一個一個賦值,s.a[0]=1; 這樣是合法的
想給陣列賦值的話用迴圈吧
18樓:army1椒rz迫
對於已經定義好了的陣列,肯定不能用這樣賦值啦,給結構體賦值其實就跟其他的變數賦值一樣,難道你可以
int a[3];
a=;這個給一個int陣列賦值嗎,不行啊。
正確的做法就是像其他變數一樣一個一個賦值,當然也可在結構體初始化時賦值
c語言怎麼給結構體的陣列初始化?說的不太明白,具體看下面例子
19樓:大維
c的陣列初始化!必須在宣告的時候才可以用 a[5] = ; 宣告的時候沒有初始化!就只能一個元素一個元素賦值了!
20樓:匿名使用者
struct xc//或者 c=;(記不清要不要c99了)//或者strcpy(c,"kook");(自己注意新增標頭檔案)//或者c.b[0]='k';c.b[1]='o';c.
b[2]='o';c.b[3]='k';
或者char *d="kook";
for(int i=0;i printf("%s",c.b); 隨便舉幾個例子,寫法不嚴謹(越往後方法越那什麼...),大佬輕噴 21樓:來自流坑村眼開眉展的雪梨 不能這樣,應該是: stu.xingming="jiyu"; 這樣就行了。 22樓: 這樣stu.xingming = "jiyu"就行了,不用帶下標。 區域性變數初始化 是指在使用這個區域性變數前,要對其進行初始化。這是因為區域性變數是從記憶體堆中分配的,用完就還給記憶體堆,所以被分配的區域性變數並不一定是0,而很可能是其他地方用過的一個值,因此在使用這個變數之前,要對它進行顯示初始化。c的區域性變數一般是在棧上進行分配的。棧使用的是ram,掉電內... c 是在c語言的基礎上開發的一種物件導向程式語言,應用廣泛。c 支援多種程式設計正規化 物件導向程式設計 泛型程式設計和過程化程式設計。最新正式標準c 於2014年8月18日公佈。其程式設計領域眾廣,常用於系統開發,引擎開發等應用領域,是至今為止最受廣大程式設計師受用的最強大程式語言之一,支援類 類... c語言把一個結構體陣列寫入檔案分三步 1 以二進位制寫方式 wb 開啟檔案 2 呼叫寫入函式fwrite 將結構體資料寫入檔案 3 關閉檔案指標 相應的,讀檔案也要與之匹配 1 以二進位制讀方式 rb 開啟檔案 2 呼叫讀檔案函式fread 讀取檔案中的資料到結構體變數 3 關閉檔案指標 inclu...關於C語言裡的初始化問題為什麼要初始化
有關於C 多維陣列的初始化,C 的二維陣列初始化
c語言中怎麼把結構體陣列寫入檔案