Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Hey guys any idea with this c++ code is giving me a segmentation fault?? Thanks!

ID: 653810 • Letter: H

Question

Hey guys any idea with this c++ code is giving me a segmentation fault?? Thanks!

#include <iostream>

void swap(int arr[][4], int row, int col);


using namespace std;

int main(int argc, char * argv[]) {

        int arr[3][4] = {{3, 6, 2, 5},
                         {2, 9, 8, 1},
                         {1, 0, 4, 3}};

        swap(arr, 3, 4);
        for (int i = 0; i < 3; i++){
                for (int j = 0; j < 4; j++) {
                        cout << arr1[i][j];
                        cout << endl;
                }
        }
          return 0;
}
void swap(int arr[][4], int row, int col){
        for (int i = 0; sizeof(arr[0]) / sizeof(arr[0][0]); ++i)
        {
                int temp = arr[row][i];
                arr[row][i] = arr[col][i];
                arr[col][i] = temp;
        }


        /*for (int i = 0; i < sizeof(arr[0]) / sizeof(arr[0][0]); i++) {
                 int y = sizeof(int) / sizeof(arr);
                 for (int j = 0; j < sizeof(int) / sizeof(arr); j++) {
                         int temp = arr[j];
                         arr[j] = arr[y - j - 1];
                         arr[y - j - 1] = temp;
                                }
        }
        for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
                cout << arr[i] << " " << endl;
        }*/

}

Explanation / Answer

#include <iostream>

void swap(int arr[][4], int row, int col);


using namespace std;

int main(int argc, char * argv[]) {

int arr[3][4] = {{3, 6, 2, 5},
{2, 9, 8, 1},
{1, 0, 4, 3}};

swap(arr, 3, 4);
for (int i = 0; i < 3; i++){
for (int j = 0; j < 4; j++) {
cout << arr[i][j];
  
}
cout << endl;
}
return 0;
}
void swap(int arr[][4], int row, int col){
for (int i = 0; i<4; ++i)// for (int i = 0; sizeof(arr[0]) / sizeof(arr[0][0]); ++i)
{
int temp = arr[row][i];
arr[row][i] = arr[col][i];
arr[col][i] = temp;
}


/*for (int i = 0; i < sizeof(arr[0]) / sizeof(arr[0][0]); i++) {
int y = sizeof(int) / sizeof(arr);
for (int j = 0; j < sizeof(int) / sizeof(arr); j++) {
int temp = arr[j];
arr[j] = arr[y - j - 1];
arr[y - j - 1] = temp;
}
}
for (int i = 0; i < sizeof(arr) / sizeof(int); i++) {
cout << arr[i] << " " << endl;
}*/

}

but it is printing same array

if you can tell me what exactly you want to do with this program i can help you out