
آموزش جامع زبان برنامهنویسی C++ مقدماتی تا پیشرفته [0 تا 100 سی پلاس پلاس بهمراه حل تمرین و پروژه ✅] - ارسال و برگرداندن ماتریس در توابع - قسمت 70
در این بخش از دوره برنامهنویسی C++، به بررسی نحوه ایجاد و استفاده از آرایههای دوبعدی با استفاده از پوینترها میپردازیم. همچنین، نحوه ارسال آرایههای دوبعدی به توابع و بازگرداندن آنها از توابع را نیز توضیح خواهیم داد.
ایجاد آرایه دوبعدی با استفاده از پوینترها
برای ایجاد یک آرایه دوبعدی با استفاده از پوینترها، ابتدا باید پوینتری برای نگهداری آدرس ردیفهای آرایه ایجاد کنیم. سپس، برای هر ردیف، پوینتری به ستونها اختصاص دهیم.
کد نمونه: ایجاد آرایه دوبعدی
#include
using namespace std;
int main() {
int rows = 2;
int cols = 3;
// ایجاد پوینتر برای آرایه دوبعدی
int** arr = new int*[rows];
// تخصیص حافظه برای هر ستون
for (int i = 0; i < rows; ++i) {
arr[i] = new int[cols];
}
// مقداردهی به آرایه
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
arr[i][j] = i + j + 1;
}
}
// نمایش آرایه
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
// آزادسازی حافظه
for (int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
ارسال آرایه دوبعدی به یک تابع
برای ارسال یک آرایه دوبعدی به یک تابع، باید از پوینترها استفاده کنیم. تابع مورد نظر باید آرایه دوبعدی و ابعاد آن را به عنوان ورودی بپذیرد.
کد نمونه: ارسال آرایه دوبعدی به یک تابع
#include
using namespace std;
void display(int** arr, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
int main() {
int rows = 2;
int cols = 3;
// ایجاد پوینتر برای آرایه دوبعدی
int** arr = new int*[rows];
// تخصیص حافظه برای هر ستون
for (int i = 0; i < rows; ++i) {
arr[i] = new int[cols];
}
// مقداردهی به آرایه
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
arr[i][j] = i + j + 1;
}
}
// نمایش آرایه با استفاده از تابع
display(arr, rows, cols);
// آزادسازی حافظه
for (int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
بازگرداندن آرایه دوبعدی از یک تابع
برای بازگرداندن یک آرایه دوبعدی از یک تابع، باید از پوینترها استفاده کنیم و حافظه مورد نیاز را در داخل تابع تخصیص دهیم.
کد نمونه: بازگرداندن آرایه دوبعدی از یک تابع
#include
using namespace std;
int** create2DArray(int rows, int cols) {
int** arr = new int*[rows];
for (int i = 0; i < rows; ++i) {
arr[i] = new int[cols];
}
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
arr[i][j] = i + j;
}
}
return arr;
}
void display(int** arr, int rows, int cols) {
for (int i = 0; i < rows; ++i) {
for (int j = 0; j < cols; ++j) {
cout << arr[i][j] << " ";
}
cout << endl;
}
}
int main() {
int rows = 2;
int cols = 3;
// ایجاد و دریافت آرایه دوبعدی از تابع
int** arr = create2DArray(rows, cols);
// نمایش آرایه با استفاده از تابع
display(arr, rows, cols);
// آزادسازی حافظه
for (int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
نتیجهگیری
در این بخش، نحوه ایجاد، ارسال و بازگرداندن آرایههای دوبعدی با استفاده از پوینترها در C++ را بررسی کردیم. این مهارتها به شما امکان میدهند که برنامههای پیچیدهتر و موثرتری ایجاد کنید و از پوینترها برای مدیریت حافظه بهینهتر استفاده کنید.
منابع خارجی مرتبط با موضوع
ادامه دوره (قسمت 71)
در قسمت بعدی برنامه نویسی شیگرایی (Object Oriented Programming) را خواهیم پرداخت. اگر سوالی دارید، در بخش دیدگاه مطرح کنید. همچنین ممنون میشم با حمایت دلنشینتون از من و دورهها حمایت کنید.
در این قسمت، قصد داریم نحوه ارسال و دریافت پوینتر به/از تابع در زبان برنامهنویسی C++ را مورد بررسی قرار دهیم. برای این کار...
برنامهنویسی شیگرایی یا Object-Oriented Programming (OOP) یک روش مدرن و قدرتمند برای طراحی و توسعه نرمافزارها است که در این جلسه قصد داریم برای شروع مفاهیم ابتدایی شیگرایی را...
ارسال و برگرداندن ماتریس در توابع
حق کپی ویدئو مجاز نمیباشد
قسمت:
جلسه هفتاد
نام دوره:
آموزش جامع ++C
زمان ویدئو:
13 دقیقه
مدرس:
مهدی کاظمی
در این قسمت یادخواهید گرفت:
در این بخش از دوره برنامهنویسی C++، به بررسی نحوه ایجاد و استفاده از آرایههای دوبعدی با استفاده از پوینترها میپردازیم. همچنین، نحوه ارسال آرایههای دوبعدی به توابع و بازگرداندن آنها از توابع را نیز توضیح خواهیم داد.
