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 賦值運算子的結合...