2021年1月29日星期五

Merge Sort Program crashes with "Exited with code: 3221225477"

I'm trying to write the Merge Sort Algorithm code with dynamic memory allocation using Malloc. Actually, this malloc is used for memory allocation for the auxiliary array used in Merge(). Everything was okay when I was using a static array for B But now when I am using Malloc it's throwing an unknown error as mentioned above. Thanks for any help you can give!

#include <stdio.h>  #include<stdlib.h>    void printArray(int *A, int n)  {      for (int i = 0; i < n; i++)      {          printf("%d ", A[i]);      }      printf("\n");  }    void merge(int A[], int mid, int low, int high)  {      int i, j, k;      int* B = (int *)malloc((high-low+1)*sizeof(int));      i = low;      j = mid + 1;      k = low;        while (i <= mid && j <= high)      {          if (A[i] < A[j])          {              B[k] = A[i];              i++;              k++;          }          else          {              B[k] = A[j];              j++;              k++;          }      }      while (i <= mid)      {          B[k] = A[i];          k++;          i++;      }      while (j <= high)      {          B[k] = A[j];          k++;          j++;      }      for (int i = low; i <= high; i++)      {          A[i] = B[i];      }        free(B);        }    void mergeSort(int A[], int low, int high){      int mid;       if(low<high){          mid = (low + high) /2;          mergeSort(A, low, mid);          mergeSort(A, mid+1, high);          merge(A, mid, low, high);      }  }    int main()  {      // int A[] = {9, 14, 4, 8, 7, 5, 6};      int A[] = {9, 1, 4, 14, 4, 15, 6};      int n = 7;      printArray(A, n);      mergeSort(A, 0, 6);      printArray(A, n);      return 0;  }  

Error Message

https://stackoverflow.com/questions/65963593/merge-sort-program-crashes-with-exited-with-code-3221225477 January 30, 2021 at 08:55AM

没有评论:

发表评论