fork download
  1. //
  2. #include<stdlib.h>
  3.  
  4. void array_remove(double *arr, int *pn, int pos) {
  5. int x = *pn;
  6. int y = pos;
  7. if (x > y) {
  8. //check if after deletion size is zero!
  9. if (x > y) {
  10. for (int i = y; i < x-1; i++) {
  11. arr[i] = arr[i + 1];
  12. }
  13.  
  14. arr=realloc(arr, sizeof(double) * x-1);
  15. *pn=*pn-1;
  16. }
  17. }
  18. }
  19.  
  20. int main(void) {
  21. int pn = 5;/*array length*/
  22. int pos = 4;/*position of the number to be deleted*/
  23. double *arr = malloc(sizeof(double)*pn);
  24.  
  25. for(int i=0;i<pn;i++){
  26. arr[i] = i;
  27. }
  28.  
  29. for(int i=0;i<pn;i++){
  30. printf("%.f ",arr[i]);
  31. }
  32. printf("\n");
  33.  
  34. printf("%i\n",pn);
  35. array_remove(arr, &pn, pos);
  36.  
  37. for(int i=0;i<pn;i++){
  38. printf("%.f ",arr[i]);
  39. }
  40. printf("\n");
  41. printf("%i",pn);
  42.  
  43.  
  44. free(arr);
  45.  
  46.  
  47.  
  48.  
  49. }
  50.  
  51.  
  52.  
  53.  
Success #stdin #stdout 0s 2288KB
stdin
Standard input is empty
stdout
0 1 2 3 4 
5
0 1 2 3 
4