Linux C function() 參考手冊:malloc(配置內存空間-實做範例)

Linux C function() 參考手冊:malloc(配置內存空間-實做範例)

Linux C function() 參考手冊:malloc(動態配置內存空間-實做範例)

 

資料來源:http://people.cs.nctu.edu.tw/~yslin/library/linuxc/main.htm
線上執行:http://www.tutorialspoint.com/compile_c_online.php
code2html:http://tohtml.com/

 

#include <stdio.h>
#include <stdlib.h>
#define ROW               2
#define COL                4
// ==================================== 
// main function
int main(int argc, char**argv)
{
int i=0, j=0;
int **ptr2 = NULL;
// 生成一維指標陣列
ptr2 = (int**)malloc(sizeof(int*)*ROW);
// 每個指標陣列再生成整數陣列
for(i=0; i<ROW; i++)
{
ptr2[i] = (int*)malloc(sizeof(int)*COL);
}
// write
int cnt = 0;
for(i=0; i<ROW; i++)
{
for(j=0; j<COL; j++)
{
ptr2[i][j] = cnt++;
}
}
// read value and address
for(i=0; i<ROW; i++)
{
for(j=0; j<COL; j++)
{
printf("ptr2[%d][%d]=%d(%0X)\n", i, j, ptr2[i][j], &ptr2[i][j]);
}
}
// 釋放指標陣列
for(i=0; i<ROW; i++) free(ptr2[i]);
// 釋放指標
free(ptr2);
return 0;
}
 
 
 

 



One thought on “Linux C function() 參考手冊:malloc(配置內存空間-實做範例)

  1. 補充C++版
    // ====================================
    #include <iostream>
    using namespace std;
    #define ROW 2
    #define COL 4
    // ====================================
    // main function
    int main(int argc, char**argv)
    {
    int i=0, j=0;
    int **ptr2 = NULL;
    // 生成一維指標陣列
    ptr2 = new int*[ROW];
    // 每個指標陣列再生成整數陣列
    for(i=0; i<ROW; i++) ptr2[i] = new int[COL];
    // write
    int cnt = 0;
    for(i=0; i<ROW; i++) {
    for(j=0; j<COL; j++) ptr2[i][j] = cnt++;
    }
    // read value and address
    for(i=0; i<ROW; i++) {
    for(j=0; j<COL; j++) {
    cout << "ptr2[" << i << "][" << j<< "]=" << ptr2[i][j];
    cout << "(" << hex << &ptr2[i][j] << ")" << endl;
    }
    }
    // 釋放指標陣列
    for(i=0; i<ROW; i++) delete ptr2[i];
    // 釋放指標
    delete ptr2;
    // 事實上, 上面那二行用 delete [] ptr2; 就行了
    return 0;
    }

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *