PIXNET Logo登入

藍影

跳到主文

生命就是享受不停學習的過程..

部落格全站分類:數位生活

  • 相簿
  • 部落格
  • 留言
  • 名片
  • 9月 13 週日 200909:21
  • 10_memory leak問題

memory_leak(1).png
在 09_二維指標與陣列 - 動態配置 [m][n] 陣列 中我們有提到
如果每 malloc 一份 memory 但卻沒有釋放,
將造成 memory leak 問題,一般而言程式真的不好抓,
(特別是已經寫了四、五千行程式要更很麻煩)
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(1) 人氣(1,821)

  • 個人分類:指標特輯
▲top
  • 9月 13 週日 200908:36
  • 09_二維指標與陣列 - 動態配置 [m][n] 陣列

在進入這階段時,請先確定前八個階段都確定會了再下來會好些。另外,有篇文章請先看過...
[console] 一維陣列與指標
[console] 二維陣列基本介紹
[console] 二維陣列與指標
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(5) 人氣(84,861)

  • 個人分類:指標特輯
▲top
  • 9月 12 週六 200902:20
  • 你這個..是瘀血唷..

星期五晚上,哥哥的腳有些痛,我開車載媽媽還有哥哥去大湳,媽建議的跌打師父那裡看一下...
以下的對話全程都是台語,但為了別讓大家看不懂,我還是用國語翻譯好了。
一進去的時候,師父就說:
"你哪裡痛?"
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(1) 人氣(927)

  • 個人分類:生活
▲top
  • 9月 11 週五 200908:47
  • 08_使用指標建立一維動態陣列

對於之前”指標特輯”的前三篇文,在程式中讓人感覺實用意義並不大,接下來要說的全都是重點,如果前三篇文沒有看懂的人,請先回去看懂吧。
1. 為什麼要用動態記憶體:一般我們使用陣列時,你不可以隨時改變陣列的大小,陣列的大小在宣告時就已經確定。所以不可能會有像以下的程式碼出現
int N = 10;
int a[N]; // complier error
N = 20;
a[N]; // complier
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(3) 人氣(109,431)

  • 個人分類:指標特輯
▲top
  • 9月 11 週五 200908:25
  • 07_函式參數(引數) - CallByReference

現在,要為各位介紹CallByReference進行SWAP的做法。先聲明,CallByReference是在C++才有的概念,不過由於現在Complier幾乎沒有單獨支援C不支援C++的, 所以就算用C語言去寫CallByReference還是可被接受。
我們前面有提過CallByValue和CallByAddress,不管是哪種方法,OS都會再次配置副函式引數所需的記憶體空間,但CallByReference是非常特別的方法,OS是直接跑到主函式a, b的位址直接進行運算,並沒有再配置額外的記憶體。所以也有人說,使用CallByReference的速度會比較快。CallByReference的寫法大致如下:
void swap(int &c, int&d){…..}
void main()
{
     int a, b;
     swap(a, b);
}
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(3) 人氣(2,459)

  • 個人分類:指標特輯
▲top
  • 9月 11 週五 200908:16
  • 06_函數參數(引數) - CallByPointer2

接下來的這個其實不是我要說明,而是留給各位思考,這個問題並不會太難或是太複雜...現在再次考慮 SWAP_A 的副函式,只是我寫的方式換了
原本的:
// ====================================
void Swap_A(int *a, int *b)
{
        int  c;
        c = *a;
        *a = *b;
        *b = c;
}
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(3) 人氣(2,114)

  • 個人分類:指標特輯
▲top
  • 9月 11 週五 200908:03
  • 05_函式參數(引數) - Call By Pointer

這是一個討論很久的名詞問題。
void f(int *x)
{
     printf("%d", *x);
}
int main()
{
    int y=10;
    f(&y);
    return 0;
}
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(4) 人氣(7,011)

  • 個人分類:指標特輯
▲top
  • 9月 11 週五 200907:13
  • 04_函式參數(引數) - CallByValue

現在,假設我要寫一個函數,這個函數是交換二個整數,也就是 a 的值給 b, b 的值給 a,該怎麼寫?這種問題是一般初學者最常犯的錯誤 – 使用 call by value。下面的例子說明了為什麼不能使用 call by value 的方式進行 swap 的動作。在看此例的執行結果時,手邊一樣先準備好紙跟筆,畫出各變數的記憶體位置及儲存值,對學習會很很大的幫助。
 原始碼:
// ====================================
// FileName: CallByValue.cpp
// Author  : Edison.Shih.
// Complier: VC 2008
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(1) 人氣(3,086)

  • 個人分類:指標特輯
▲top
  • 9月 09 週三 200911:04
  • 03_指標的指標

指標的指標,說穿了只是雙重指標而已。假設 ptr1 是指向變數a的指標,ptr2為指向ptr1的指標,那麼 ptr2 就是變數a “指標的指標”(ptr2→ptr1→a)。這部份很容易搞亂,麻煩請準備紙筆在手邊會比較方便。
現在考慮以下指令:
int a = 10;
int *ptr1 = &a;
(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(2) 人氣(8,774)

  • 個人分類:指標特輯
▲top
  • 9月 09 週三 200909:12
  • 02_陣列與指標關係

接下來為各位介紹陣列和指標的關係。在這裡要先跟大家討論說明,陣列其實本身就是一種指標,但指標本身是一種陣列嗎?答案是否定的,但你的確可以把指標當作陣列在使用(也就是所謂的動態陣列,這個以後會提到)。 
我們先設一個一維陣列,其內容為 for(i=0; i<MAX; i++) Array[i] = I; 由於OS分配給陣列的記憶體位置是連續的,所以配置好後其記憶體示意圖如下所示。 


儲存值




0




1




2




3




4






記憶體位址




12FF44




12FF48




12FF4C




12FF50




12FF54






Array




Array[0]




Array[1]




Array[2]




Array[3]




Array[4]




(繼續閱讀...)
文章標籤

Edison 發表在 痞客邦 留言(9) 人氣(47,563)

  • 個人分類:指標特輯
▲top
«1...5679»

個人資訊

Edison
暱稱:
Edison
分類:
數位生活
好友:
累積中
地區:

熱門文章

  • (118,942)01_初學指標請進 - 指標與位址
  • (55,639)[console] 二維陣列基本介紹
  • (16,457)[console] 二維陣列與指標
  • (12,780)[演算法 - 數] 求質數效率分析
  • (9,048)[C語言數值分析] 求PI
  • (4,909)[console] 一維陣列與指標
  • (4,608)Autorun.inf 簡介
  • (3,042)[演算法 - 數] 阿姆斯壯數
  • (2,869)[字典檔 - C語言] 初版
  • (1,441)命令提示字元常用指令

文章分類

toggle C/C++ 程式設計 (8)
  • 程式亂語 (3)
  • 作業文 (12)
  • 方程式求解 (4)
  • 線性代數問題 (6)
  • 數的特性 (6)
  • 基礎筆記 (12)
  • Win32視窗設計 (7)
  • 指標特輯 (13)
toggle 軟體應用 (3)
  • Application (1)
  • Windows Operation. (7)
  • 命令提示字元 (3)
toggle 非資工演算法 (1)
  • NP 問題演算法 (1)
  • 未分類文章 (1)

最新文章

  • 微小
  • 準備搬家
  • [作業文] 井字遊戲
  • [作業文] 星號問題種類
  • [作業文] 太陽星星月亮 - 畫數字問題
  • [作業文] 太陽星星月亮 - 中空凌形問題
  • [轉載] 送給正在學習C++朋友的50條建議
  • 初學者對 IDE / C(++) 的錯誤認知
  • [作業文] 一行版九九乘法表
  • [作業文] cos(x) = 1- x^2/2! + x^4/4! - ....... x^n/n!

最新迴響

  • [22/04/08] 訪客 於文章「[轉載] 送給正在學習C++朋友的50條...」留言:
    原本在搜尋引擎找出一堆 Blog 文章,不知哪幾篇值得花時間...
  • [19/12/06] 蔡采娟 於文章「01_初學指標請進 - 指標與位址...」留言:
    為甚麼a的位址跟ptr2的位址是差12,不是差4個位元...
  • [19/01/02] Lubar WU 於文章「01_初學指標請進 - 指標與位址...」留言:
    原來是這樣 難怪原本1.2那邊我看不懂 學校教科...
  • [18/06/20] t789245 於文章「準備搬家...」留言:
    c7lfo9YwD奢侈品仿牌原單品質良心賣家,誠信做生意,保...
  • [18/03/26] 搭拉拉' 於文章「01_初學指標請進 - 指標與位址...」留言:
    感謝...
  • [17/11/06] 漆黑月光 於文章「03_指標的指標...」留言:
    請問一下 如果我再主程式用calloc取得五個記憶體位址分別...
  • [17/09/23] 訪客 於文章「03_指標的指標...」留言:
    感謝教學...
  • [17/07/27] 訪客 於文章「01_初學指標請進 - 指標與位址...」留言:
    講得太棒了,有圖秒懂,描述又有條理,謝謝您...
  • [17/07/27] 訪客 於文章「[字典檔 - C語言] 初版...」留言:
    這種寫法是種簡便的方式...
  • [17/02/07] 張皓雲 於文章「[作業文] 使用 linklist 解多...」留言:
    當輸入係數是1次方不是1時,會有錯誤 3 1 1 1 ...

文章精選

文章搜尋

誰來我家

參觀人氣

  • 本日人氣:
  • 累積人氣: