c語言靜態(tài)變量和動態(tài)變量的區(qū)別 c語言再申明了結構體變量指針后為什么還要給指針動態(tài)分配存儲單元?
c語言再申明了結構體變量指針后為什么還要給指針動態(tài)分配存儲單元?a int b}*a//前面的代碼只定義了一個未初始化的結構指針。它可能指向空地址或其他未知地址。此時,直接操作指針是操作指針指向的內存
c語言再申明了結構體變量指針后為什么還要給指針動態(tài)分配存儲單元?
a int b}*a//前面的代碼只定義了一個未初始化的結構指針。它可能指向空地址或其他未知地址。此時,直接操作指針是操作指針指向的內存。此內存只能在系統(tǒng)區(qū)域中,也可以在常量區(qū)域中。無論如何,這是內存,這個程序不應該訪問,所以內存錯誤發(fā)生。
指針只能在為指針分配空間后用于分配空間。一種是定義這樣一個結構變量,然后將指針指向它的地址。另一種是手動malloc一個區(qū)域來分配空間,然后執(zhí)行指針操作,這樣就不會出現這樣的內存錯誤