結構體賦值出錯,結構體指標兩種賦值方式怎麼會出錯

時間 2022-07-22 10:45:12

1樓:匿名使用者

這個問題是因為你在賦值時,資料型別不一致,造成資料在自動轉換的過程中,形成資料擴充套件問題或是資料擷取問題,其次,你在資料輸出時資料型別又不一致,也存在以上問題。這樣就會得到你想不到的結果,當然如果你瞭解資料型別的轉換的話,你就能理解這個結果了

2樓:匿名使用者

1.new str這種語法是用於初始化集合的,及實現了ienumerable或者ienumerable的型別。大括號裡的元素會成為集合的項。如初始化一個list:

listlist = new list;

2.如果你想初始化一個型別(結構體其實也是一個類,可以看il**),首先你的結構體成員必須是公有的,否則在外面是不能訪問這些成員的。所以你可以把結構體改為:

public struct str

然後再如下初始化:

str sss = new str

;這種形式只有在3.0以上的版本才可以使用哈。

當然這種初始化方式其實是編譯器為我們提供的簡便方式。最終編譯後的**還是傳統的new一個變數,再為各個屬性賦值的形式。9月

3樓:匿名使用者

'long' followed by 'long' is illegal

long long寫在一起就是錯的,沒有這種資料型別

結構體指標兩種賦值方式怎麼會出錯

4樓:

pid *sptr = &volpid;

定義 pid 型別的指標並初始化為 volpid 變數的地址,注意,這裡不是「賦值」,而是「初始化」。

pid *sptr; *sptr = &volpid;

給 sptr 指向的變數賦值。

錯誤1:型別不同,*sptr 是指向了變數,就是變數本身,而 &volpid 是變數的地址,一個是變數,一個是變數的地址。

錯誤2:sptr 沒有初始化,給其指向的變數賦值,可能造成崩潰。

錯誤3:即使 sptr 已初始化,也不能為其指向的變數賦值,因為該變數型別是 struct,按 c 語言的型別劃分,屬於「聚集型別(aggregation)」,聚集型別不能整體賦值。

改成這樣才正確:

pid *sptr; sptr = &volpid;

定義 sptr 指標,然後賦值為 volpid 變數的地址。

c語言結構體賦值錯誤,跪求解答 10

5樓:匿名使用者

job[i].jobability=(char *)malloc(50);

scanf("%s",job[i].jobability);

6樓:匿名使用者

結構體是怎麼定義的?

c語言裡,結構體之間賦值出現問題

7樓:匿名使用者

#include

ranghtol(struct student a[30],int number);//ranghtol是什麼?,除了你別人都不知道,c系統也不知道。

typedef struct student student;

ranghtol(struct student a[30],int number)  } }}

c語言中結構體,可以在定義結構體型別的時候,給某些成員賦值不

8樓:兜裡有兩塊糖

在c語言的語法中,這樣不行

如果你需要初始化

可以這樣寫

struct stu student = ;

這個給結構體賦值為什麼錯誤?

9樓:陽光亮男

num是int型的整數

mythread.num="1";,這裡你用雙引號擴起來表示字串了

10樓:

"1"和"liping"都是字串

num期待的值只能是整數或單個字元如:1或『1』

name是隻能儲存單個字元如:『a'或'b'

11樓:匿名使用者

mythread後面那個不能用了吧

你應該是沒有理解typedef這個偽指令的意義吧

看看這裡

12樓:

"1" -> '1' or 「1"->1

"liping"是串,不是字元

char name -> char *nametypedef去掉

13樓:xiao2不語

char 為單個字元,你可以寫成string name

求助,結構體函式賦值出錯!

14樓:金色潛鳥

找出就好。

你是做交換:

t = ps[j];

ps[j] = ps[j+1];

ps[j+1] = t;

15樓:匿名使用者

ps = ps[j+1];應該是ps[j] = ps[j+1];這個吧

結構體中的指標同時賦值null出錯

16樓:

int* p1=null;

是定義一個指標變數,指向null。

path* path;

path->begin=null;

相當於 :

int* p1;

*p1 = 33333;

定義了一個指標,但是沒有指向有效的記憶體(野指標),對指標進行寫操作當然會出錯。應該這樣:

path path;

path *p = &path;

p->begin=null;

p->end=null;

結構體指標的問題,結構體指標和結構體中的指標的區別

楚劒蘭心 是呼叫操作符,是對指標的解引用然後再呼叫,只有指標呼叫別的變數或函式時使用,並且只要是用指標來呼叫的話,就必用它。比如 struct s int value s p 定義一個結構體指標 p value 呼叫結構體內的變數。也就是 p value 二者等價。 公珍碧魯哲 struct l 粗...

關於結構體指標問題,還有函式指標作為結構體成員的問題

雪豹出擊 int changevar int 你少些了個e這是一個函式指標,這個changevar指標指向一個這樣的函式 這個函式有一個int型引數,返回值也是int.所以if fb info.changevar 的意思就是判斷結構體fb info中的changevar是否為空,等同於if fb i...

c語言結構指標和結構體成員指標問題

佼霏聞新竹 既是取地址符號,一個指標p指向q就需要寫作p q,在函式引數裡是 引用 就是別名,類似指標了,這種情況下對變數的修改會影響到函式外的原變數。那個printf a p n a 等於求出地址 x然後作為指標看待 p 所以也是yyyy了 樓主可以做個試驗,看看輸出結果地址間的關係,你就應該可以...