[問題] 動態記憶體配置的問題

看板C_and_CPP (C/C++)作者 (株之)時間16年前 (2009/11/15 15:31), 編輯推噓3(304)
留言7則, 5人參與, 最新討論串1/2 (看更多)
#include <stdio.h> #include <stdlib.h> int main() { int *pt; pt = (int *)malloc(sizeof(int)); if(pt==0) return 0; pt[0] = 20; pt[1] = 30; pt[2] = 40; int i; for(i=0;i<3;i++) printf("%d ",pt[i]); free(pt); system("pause"); return 0; } 之前有學過一點點的LINKED LIST,所以這次第二次碰動態配置, 小弟還是新手Q_Q,練習的時候發現了一些問題 .. 想請問板上大大, int *ptr = malloc(sizeof(int)); 以動態的方式來配置一個int型態大小的記憶體空間, 照上文的程式碼..pt[0]~pt[2]的程式碼都可以順利存入.. 如果index往後改多一點,有存入可是會瞬間跳掉會無視pause 一般來說是不是一個陣列位置就要動態配一個給他呢 ? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.85.184.10 ※ 編輯: UT5 來自: 219.85.184.10 (11/15 15:31)

11/15 15:35, , 1F
你這樣只有pt[0]是合法的使用...
11/15 15:35, 1F

11/15 15:42, , 2F
去圖書館借了一本很奇怪的資料結構..上述程式碼是範例..冏
11/15 15:42, 2F

11/15 15:43, , 3F
想說怎麼跟印象中的不太一樣 q_q
11/15 15:43, 3F

11/15 15:45, , 4F
書上程式碼印錯,也是常有的事,不用在意
11/15 15:45, 4F

11/15 15:51, , 5F
可以順利存入是運氣好...
11/15 15:51, 5F

11/15 15:52, , 6F
pt = (int *)malloc(N * sizeof(int)); N是你要用的數量
11/15 15:52, 6F

11/15 17:02, , 7F
你要跟他說你的sizeof(int)你需要幾個~不給他只有pt[0]可用
11/15 17:02, 7F
文章代碼(AID): #1A_wv3n3 (C_and_CPP)
文章代碼(AID): #1A_wv3n3 (C_and_CPP)