結構體訪問的問題,類中靜態結構體的訪問問題,程式碼如下

時間 2025-01-14 15:25:10

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 ...