1樓:網友
我把你的意思試了一下,和你說的結果不一樣啊。
void func(struct node_t *tmp)tmp->m->a = 1;
這樣寫雖然能通過編譯,但執行時會出現野指標的執行錯誤,必須改成:
void func(struct node_t *tmp)tmp->m=(struct node*)malloc(sizeof(struct node));
tmp->m->a = 1;
才能正確執行輸出1
實際上我認為你的思路是正確的,結構體裡有幾層指標就要malloc幾次,不然會出現野指標的記憶體錯誤,你在仔細看看吧。
2樓:網友
tmp->m = struct node *)malloc(sizeof(struct node));
是必須需要的。
如果不要的話,tmp->m指向哪是未知的,你引用的就是一塊未知記憶體,如果改寫這塊記憶體的話可能對程式乃至系統造成問題。
這是典型的未正常分配空間而造成的記憶體問題。
c語言中struct 結構體 成員的訪問問題?
3樓:網友
這主要得看a是什麼型別,如果a是結構體變數(比如os_mem_data a),那麼就是。
如果是結構體指標變數(如os_mem_data *a),那麼就是a->b。
a->b等價於(*a).b。
4樓:
指標就用-> 非指標就用。
例子:os_mem_data *s;//這裡需要給s明確的指向s->。
os_mem_data s;
5樓:篤俠
—— a是結構體變數名。
a->b—— a是指向結構體變數的指標。
類中靜態結構體的訪問問題,**如下
6樓:風若遠去何人留
你的問題是什麼呢。
這個就是輸出乙個。
stru沒有別的了。
c語言 結構體f訪問問題
7樓:網友
不過看到你結構體不會,也會除錯,真的從心裡佩服。贊你乙個。。
我大四畢業了,還是不會除錯。真心佩服你們這些年輕人。。。
你的**因為是截圖,我就沒有上機試你的**了。我其實打字很慢不過,就看**啊,至少2個錯誤,或許改調了,你的程式會很好的執行。
scanf(""); 應該改為 ==>printf 吧)for(t=1;t<=5;t++)應該改為 ==> for(t=0;t<5;t++)t不能等於5,c語言陣列最大是陣列個數-1,即5-1=4;
8樓:
下標越界,觸發記憶體保護!
c語言下標從0開始!
c語言問題:結構體裡面的成員,如果想按位訪問。。。
9樓:匿名使用者
不同的編譯器對位欄位有不同的型別範圍,gcc以及vc++就不允許陣列位欄位,而bcb則允許。
stl 結構體訪問問題
10樓:網友
it是 list::iterator 語法仿租上相當於是個 *pla ,所以訪問類內容就 it->x 和慎畝 it->y , 前面寫什麼*就錯備孝兆了。
c++訪問結構體元素的方法
11樓:風若遠去何人留
1全部訪問結構體元素,根據結構體變數的型別,有兩種方法。
1 變數為結構體物件。
如果變數a為結構體物件,且結構體內有元素b,那麼可以使用的方式訪問元素。
2 變數為結構體指標。
如果變數a為結構體指標,且結構體內有元素b,那麼可以使用a->b的方式訪問元素。
需要注意的是,結構體最初為c語言的概念,c++繼承了該型別並進行了擴充套件。在c++中,結構體與類(class)是相似的,元素同樣可以設定屬性,如果被設定為private屬性,那麼結構體成員函式和友元函式外的其它函式無法訪問該元素。
12樓:網友
假如定義個結構體變數 s 吧,裡面有個int的成員a想訪問s的a,就要用。點表示變數內部的成員如果有定義了個該結構體的指標,指向s,就算ps把,想用ps訪問s的a,就要用ps->a。箭頭表示是指標指向的變數的成員。
13樓:網友
第一種是結構體指標訪問。
第二種是結構體物件訪問。
C 類和結構體有什麼區別,C 中共用體 結構體和類的區別
c c 結構體的區別 c中的結構體和c 中結構體的不同之處 在c中的結構體只能自定義資料型別,結構體中不允許有函式,而c 中的結構體可以加入成員函式。c 中的結構體和類的異同 一 相同之處 結構體中可以包含函式 也可以定義public private protected資料成員 定義了結構體之後,可...
c語言結構體中的陣列怎麼賦值,C語言,結構體中的陣列怎麼賦值,?
念憶 intmain void printf d,s n bao.id,bao.name 輸出是4224528,空 應該是null structstudentsbao 可以。第一種賦值方法 strcpy bao.name,bao 可以,printf d,s n bao.id,bao.name bao...
cqsort對結構體排序,C 中sort怎麼對結構體陣列中的字串陣列排序?
藍色 你如果要按照x的大小順序牌還是y 的大小順序牌,int comp const void a,const void b vc6 幫助裡的對qsort 裡compare函式指標引數的要求 compare void elem1,void elem2 the routine must compare ...