Open Pin-Jiun opened 1 year ago
基本pointer詳見C語言
int n = 5; int *ptr = &n; *ptr = 10;
void print(void *ptr, char type){ switch(type){ case 'i':cout << *((int*)ptr) << emdl; break; case 'c':cout << *((char*)ptr) << emdl; break; } }
在傳遞array時,為了減少記憶體的不必要浪費,將會進行隱性轉,以 指標 的方式型進行傳遞
int Numbers[5]; for(int i =0; i<3; i++){ cout << "Number: "; cin >> Numbers[i]; } for(int i = 0; i<3; i++){ cout << *(Numbers+i) << endl; }
假設建立一個myArray,且以變數的形式創立
int size; cout << "Size: "; cin >> size; int myArray[size];
然而這種創建方式是非常危險的,有些complier是無法運行的 此時就需要 Dynamic Arrayint *myArray = new int[size] 但使用Dynamic Array時,使用者必須自行負責刪除使用的記憶體(c語言中是使用malloc和free),避免memory leak
int *myArray = new int[size]
malloc
free
int main() { int size; cout << "Size: "; cin >> size; int *myArray = new int [size]; delete[]myArray; myArray = NULL; return 0; }
創建一個3X4的 2D Array
int rows = 3; int cols = 4; //comstruct int* *table = new int* [rows]; for(int i = 0; i < rows; i++){ table[i] = new int[cols]; } table[1][2]=88; //free memory for(int i = 0; i < rows; i++){ delete[] table[i]; } delete[] table; table = NULL;
基本pointer詳見C語言
void pointer
Pointer and Array(詳見C語言)
在傳遞array時,為了減少記憶體的不必要浪費,將會進行隱性轉,以 指標 的方式型進行傳遞
Dynamic Array
假設建立一個myArray,且以變數的形式創立
然而這種創建方式是非常危險的,有些complier是無法運行的 此時就需要 Dynamic Array
int *myArray = new int[size]
但使用Dynamic Array時,使用者必須自行負責刪除使用的記憶體(c語言中是使用malloc
和free
),避免memory leak2D Array
創建一個3X4的 2D Array