給結構體中的變數賦值,如何給包含結構體變數的結構體變數賦初值

2022-01-09 11:26:12 字數 2972 閱讀 8602

1樓:

是因為你使用指標時還沒分配記憶體。

可以這樣

typedef struct l1

sdt;

sdt s; s.name="k1";

或者用下面的方法

#include//在開頭處包括標頭檔案

sdt *s1 = (sdt*)malloc(sizeof(sdt));

s1->name = "k1";

這兩種方法都行

2樓:匿名使用者

你的指標變數s1是不是沒有初始化或者是沒有分配記憶體,如果是這樣,你就是使用了不知道到指向那裡的指標,這是很危險。

這是我寫的:

#include

#include

#include

using namespace std;

struct l1

;typedef l1* pl;

int main()

3樓:匿名使用者

sdt *s1;s1->name="k1";

這裡的s1是指標,還沒有賦初值啊,不能使用

4樓:匿名使用者

typedef struct l1

sdt;

sdt *s1 = new sdt;//這樣就好了, 記得釋放s1->name="k1";

要不就這樣:

typedef struct l1

sdt;

sdt s1 ;s1.name="k1";

sdt *s1;s1->name="k1";// 這樣的話 ,並沒有分配儲存空間啊 ,你把 k1 放哪兒?

5樓:匿名使用者

c裡面是不能這樣賦值的, 這種方式只有在定義的時候初始化才可以如果 int a[2] = 這是正確的,但是定義陣列之後再 a = 是不正確的, 你還是乙個乙個賦值吧. 另外說明一下吧, 定義的時候是給變數申請記憶體, 編譯器會把你初始話的值賦值到記憶體, 但是如果 以後在賦值的時候, 就成了指標了, 語法就不正確了

m1->edges=,,

,};------

你可以把你要初始話的這個陣列定義個const陣列, 後面再用for來賦值吧, 沒有其他辦法,,,};

6樓:六和平

我上次情況和你一樣,網 警的ԛ;213~~94~~110,然後說清楚自己的情況。

c++怎麼給乙個類裡的結構體中的變數賦值

7樓:種燒餅的怪叔叔

這個應該算巢狀類的使用了,首先你這個結構申明是私有(private)的嗎?如果是的話,只能用建構函式逐一賦值:

class person;

brith b;//建立例項

public:

void set(int,int,int);

person ()

};int main()

8樓:突突無限

struct brith b = ;

person p = ;

9樓:匿名使用者

要有結構體的物件或指標才行

如何給包含結構體變數的結構體變數賦初值

10樓:匿名使用者

宣告和定義是無法賦值的,在student1的賦初值,你只需要把birthday的元素按順序拆開,然後再賦值就可以了

比如你就可以這樣

student1 =

11樓:義向

在struct student裡面加乙個建構函式(例如下面這個),在裡面可以給birthday賦初值 ···

student()

12樓:匿名使用者

在子函式中定義變數,還可以全域性變數,直接賦值或用for迴圈賦值

13樓:匿名使用者

scanf("%s",student1.birthday.year);

結構體變數如何賦值可以直接賦值嗎

14樓:匿名使用者

結構體變數是可以直接賦值的;

定義結構體型別,然後用這個型別定義出來的變數就是結構體變數;

c語言在相同型別的變數間賦值時是直接記憶體複製的,即將他們的記憶體進行複製,這裡因為同樣結構體變數,屬於同一種變數,所以賦值時是按照他們的記憶體分布來直接拷貝的。

15樓:匿名使用者

結構體的賦值僅僅是簡單的淺複製,如果涉及到指標型別就會出問題,比如:

struct birthday

;struct stu;

16樓:匿名使用者

可以,但是不太推薦.

--------------------

可以在定義時賦值,也可以通過變數來賦值,c++裡面還可以通過建構函式,成員函式來賦值等...

struct yy a = ;

struct yy b;

b.i = 2;

b.f = 1.1;

17樓:匿名使用者

結構體變數可以直接賦值的。

18樓:

可以直接賦值,但是在有指標的情況下會出現指向同一位置的情況,在這種情況下,釋放掉其中之一那麼,另乙個的指標使用會出現非法.

因為他們有預設的賦值過載.但是只可以簡單的將對應的值一一賦給對方.

同一型別用得著宣告兩次麼?這麼多人都說了,可以呀.只是有些像上面說的那種情況你要注意一下.

19樓:小阿橙

好象可以哎,我也不是很懂!!嘿嘿.只可參考!

20樓:匿名使用者

struct a

aa;struct b

bb;bb = aa;

暈,明顯重複定義了

c 中如何給int型別的變數賦值成以零開頭的整數

int型別只是整數,和數學中的定義一樣,不管字首有幾個0,值都相等。在c c 中,整版數字麵量權的字首0表示八進位制。所以int a a 0908 肯定編譯錯誤,因為9不是八進位制的合法數字。按lz的要求,應該只是輸出樣式的問題。即使用int儲存,這種也很簡單,只用c c 標準庫就可以實現,例如c風...

matlab怎樣給符號表示式中的變數賦值啊

subs s,t d p q是什麼啊?matlab 怎麼給符號變數賦值 用subs w 把符號表示式裡面的符 號量用當前工作區中的同名變數替換,也就是使用者所要的賦值了。其實任何矩陣的元素都可以直接作為變數來使用,能否作為變數的唯一判斷標準就是它是否能夠放在賦值符號 的左邊。matlab中subs ...

c語言如何讀取c a 中的資料,並賦值到變數

我來給出正解吧 a a a 7 是賦值語句 正確b a 7 b c,a 這是乙個賦值運算子和逗號運算子等組成的語句,因為賦值運算子的優先順序高於逗號運算子,所以相當於 a 7 b c a 而不是a 7 b c,a c int 12.3 4 不能出現小數,非法 d a a 7 c b 賦值運算子的結合...