پاسخ داده شده: سلام ببخشید میشه درباره نحوه دسترسی به پوینتر های دوبعدی و سه بعدی توضیح بدین
فرض کنید تابعی تعریف می کنیم که آدرس یک رشته را می گیره و چاپ می کنه به صورت زیر:
#include <iostream> using namespace std; void func1(char* str){ cout << str << endl; } int main(){ char str[] ="hello"; func1(str); return 0; }
فرقی نداره هر چند بعدی باشه اگر تک متغیر new کردید با delete و اگر به new مقداری را به عنوان تعداد دادید هنگام آزادسازی به جای delete باید از delete[] استفاده کنید.
#include <iostream> using std::cout; using std::endl; int main() { int*** ptrInt = new int**[3]; for(int i(0); i < 3; i++) ptrInt[i] = new int*[3]; for(int i = 0; i < 3; i++) { for(int j(0); j < 3; j++) ptrInt[i][j] = new int[3]; } for(int i = 0; i < 3; i++) { for(int j(0); j < 3; j++) for(int k(0); k < 3; k++) ptrInt[i][j][k] = k; } for(int i = 0; i < 3; i++) { for(int j(0); j < 3; j++) for(int k(0); k < 3; k++) cout << "ptrInt[" << i << "][" << j << "][" << k << "]: " << ptrInt[i][j][k] << endl; } // now freeing memory: for(int i = 0; i < 3; i++) { for(int j(0); j < 3; j++) delete[] ptrInt[i][j]; delete[] ptrInt[i]; } delete[] ptrInt; cout << endl << endl << endl; return 0; }