※ 引述《b7505002 (陣列怎麼寫?)》之銘言:
: ※ 引述《twwang (前途要靠自己創造)》之銘言:
: : 堅持要用的話 用const int i=10; 吧
: : 陣列元素當你這樣指定的時候一定要是常數啦!
: : 不過這樣用﹍﹍還是有點龜毛﹍﹍﹍
: 其實我硬是要這麼設的原因是因為在程式接受外來的數值時,
: 根本不知道有多少個數會進來,
: 萬一進入的數值太多以至於超出陣列所能存的個數時,
: 就會破壞到機械碼,然後就當機,
: 接下來就只能乞求老天硬碟的資料不要被破壞...
課本上有個不錯的方法…
就是先將檔案傳進來數字用一個變數來接
在把這個變數名當矩陣的元素值
醬就可以做到控制矩陣大小啦…
不過比較好的做法聽學長講是用指標…不過不會用
…
你不是跟我同一題嗎…
我寫出來了呦
要不要程式碼呀^^
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: IP017.dialup.nt
> -------------------------------------------------------------------------- <
作者: b7505002 (陣列怎麼寫?) 看板: NAOE-87
標題: Re: 輔大資管mission complete
時間: Sun May 16 13:37:59 1999
※ 引述《twwang (前途要靠自己創造)》之銘言:
: 老師不會吹毛求疵的﹍﹍
其實是我在吹毛求疵...:)
: 恩???
: 記憶體就算亂掉﹍﹍﹍
: 甘硬碟什麼事啊?
: 只要不要來個『多工多緒』,
: 在背景寫硬碟﹍﹍應該沒事吧﹍﹍
當然有關係啦,cpu純粹只看機械碼,根本不管你所輸入的是程式碼
或使用者自訂的資料,舉個例子好了,如果超出陣列的部分的數值被cpu拿去解碼
解出來的指令是(以組合語言形式):
mov ip,????
那麼ip暫存器就會被改掉,改到CS:IP所指的記憶體位址去讀取該記憶體內容
然後再解碼...當然這個時候CS:IP所指向的記憶體位址的機械碼或許根本就不是你原來
要執行的順序,而CS:IP所指的機械碼會命令CPU做什麼事,完全不知道..
這些問題是我在以前初學組合語言時經常碰到的問題,每次寫完程式就必須
用DEBUG去盯每個暫存器的值是不是所預期的...
上面所說的不曉得也沒關係,就當我在耍白爛,只是我覺得
C語言沒有辦法用類似DEBUG的程式可以除錯,所以我很怕當機