剛學資料結構,這個我改了好久都不行


uj5u.com熱心網友回復:
我把int data[maxsize]改為int *data就可以運行了,想問一下這個是為什么呢?uj5u.com熱心網友回復:
int data[maxsize] 是陣列,陣列的記憶體是程式自動分配的(陣列長度要用戶確保),一旦程式分配好記憶體,其地址就不能改變(相當于常量指標),所以不能用 data = XXX 來改變陣列的地址(也就是data=https://bbs.csdn.net/topics/(int*)malloc()出錯的原因),只能用 data[i] = xxx 來改變陣列的元素int *data是指標,它需要用戶自己初始化指標的指向,如果指向的記憶體不是事先分配好的,就要自動申請記憶體,也就是 data = (int*)malloc() 不出錯的原因(這是正常合法的初始化指標)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/150008.html
標籤:新手樂園
上一篇:c語言小題
下一篇:decltype未宣告怎么辦
