Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

การส่งผ่านอาร์เรย์สองมิติไปยังฟังก์ชัน C++


C++ ไม่อนุญาตให้ส่งผ่านอาร์เรย์ทั้งหมดเป็นอาร์กิวเมนต์ไปยังฟังก์ชัน อย่างไรก็ตาม คุณสามารถส่งตัวชี้ไปยังอาร์เรย์ได้โดยการระบุชื่ออาร์เรย์โดยไม่มีดัชนี มีสามวิธีในการส่งอาร์เรย์ 2D ไปยังฟังก์ชัน -

ระบุขนาดคอลัมน์ของอาร์เรย์ 2 มิติ

void processArr(int a[][10]) {
   // Do something
}

ส่งอาร์เรย์ที่มีพอยน์เตอร์

void processArr(int *a[10]) {
   // Do Something
}

// When callingint *array[10];
for(int i = 0; i < 10; i++)
   array[i] = new int[10];
processArr(array);

ส่งตัวชี้ไปยังตัวชี้

void processArr(int **a) {
   // Do Something
}
// When calling:
int **array;
array = new int *[10];
for(int i = 0; i <10; i++)
   array[i] = new int[10];
processArr(array);

ตัวอย่าง

#include<iostream>
using namespace std;

void processArr(int a[][2]) {
   cout << "element at index 1,1 is " << a[1][1];
}
int main() {
   int arr[2][2];
   arr[0][0] = 0;
   arr[0][1] = 1;
   arr[1][0] = 2;
   arr[1][1] = 3;

   processArr(arr);
   return 0;
}

ผลลัพธ์

สิ่งนี้จะให้ผลลัพธ์ -

element at index 1,1 is 3