arjunarul

DSA0 - Pointers

Aug 31st, 2026 (edited)
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.40 KB | None | 0 0
  1. https://bit.ly/dsa_pointers
  2.  
  3.  
  4.  
  5. #include <stdio.h>
  6.  
  7. int main() {
  8.     int x = 10;
  9.     int *p = &x;   // & : address-of. p now holds x's address
  10.     *p = 20;       // * : dereference. "go to that address, treat as int"
  11.                // x is now 20
  12.     printf("%d",x);
  13. }
  14.  
  15.  
  16.  
  17. #include <stdio.h>
  18.  
  19. int main() {
  20.     int x = 10;
  21.     int *p = &x;   // & : address-of. p now holds x's address
  22.     *p = 20;       // * : dereference. "go to that address, treat as int"
  23.                // x is now 20
  24.     printf("%d",p);
  25. }
  26.  
  27.  
  28.  
  29. #include <stdio.h>
  30.  
  31. int main() {
  32.     int x = 10;
  33.     int *p = &x;   // & : address-of. p now holds x's address
  34.     *p = 20;       // * : dereference. "go to that address, treat as int"
  35.                // x is now 20
  36.     printf("%p",p);
  37. }
  38.  
  39.  
  40.  
  41. #include <stdio.h>
  42. int main() {
  43.     int a = 3;
  44.     int *pa = &a;
  45.  
  46.     printf("%p %p \n", &a, pa);
  47.     printf("%d %d", a, *pa);
  48.     return 0;
  49. }
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56. #include <stdio.h>
  57. int sum(int a, int b)
  58. {
  59.     return a+b;
  60. }
  61.  
  62. int main() {
  63.     int a,b;
  64.     scanf("%d %d", &a,&b);
  65.     int c = sum(a, b);
  66.     printf("%d", c);
  67. }
  68.  
  69.  
  70.  
  71.  
  72. #include <stdio.h>
  73. void increment(int a)
  74. {
  75.     a = a+1;
  76.     return;
  77. }
  78.  
  79. int main() {
  80.     int a,b;
  81.     scanf("%d", &a);
  82.     increment(a);
  83.     printf("%d", a);
  84. }
  85.  
  86.  
  87.  
  88.  
  89. #include <stdio.h>
  90. void increment(int *a)
  91. {
  92.     a = a+1;
  93.     return;
  94. }
  95.  
  96. int main() {
  97.     int a,b;
  98.     scanf("%d", &a);
  99.     increment(&a);
  100.     printf("%d", a);
  101. }
  102.  
  103.  
  104.  
  105. #include <stdio.h>
  106. void increment(int *a)
  107. {
  108.     *a = *a+1;
  109.     return;
  110. }
  111.  
  112. int main() {
  113.     int a,b;
  114.     scanf("%d", &a);
  115.     increment(&a);
  116.     printf("%d", a);
  117. }
  118.  
  119.  
  120.  
  121.  
  122.  
  123. #include <stdio.h>
  124. int sum(int *a, int *b)
  125. {
  126.     return *a + *b;
  127. }
  128.  
  129. int main() {
  130.     int a,b;
  131.     scanf("%d %d", &a,&b);
  132.     int c = sum(&a, &b);
  133.     printf("%d", c);
  134. }
  135.  
  136.  
  137.  
  138.  
  139. #include <stdio.h>
  140. int sum(int A[], int n)
  141. {
  142.     int total = 0;
  143.     for(int i=0 ; i < n; i++)
  144.     {
  145.         total += A[i];
  146.     }
  147.     A[1] = 100;
  148.     return total;
  149. }
  150.  
  151. int main() {
  152.     int num[5] = {1,2,3,4,5};
  153.     int c = sum(num, 5);
  154.     printf("%d",num[1]);
  155.     return 0;
  156. }
  157.  
  158.  
  159.  
  160.  
  161. #include <stdio.h>
  162.  
  163. int main() {
  164.     int num[5] = {1, 2, 3, 4, 5};
  165.     int *p = num;
  166.  
  167.     for (int i = 0; i < 5; i++)
  168.     {
  169.         printf("%d", p[i]);
  170.     }
  171.     return 0;
  172. }
  173.  
  174.  
  175.  
  176. #include <stdio.h>
  177.  
  178. int main() {
  179.     int num[5] = {1, 2, 3, 4, 5};
  180.     int *p = num;
  181.  
  182.     for (int i = 0; i < 5; i++)
  183.     {
  184.         printf("%d", *(p+i));
  185.     }
  186.     return 0;
  187. }
  188.  
  189.  
  190.  
  191.  
  192. #include <stdio.h>
  193.  
  194. int main() {
  195.     int num[5] = {1, 2, 3, 4, 5};
  196.     int *p = num;
  197.  
  198.     for (int i = 0; i < 5; i++)
  199.     {
  200.         printf("%d", *p);
  201.         p++;
  202.     }
  203.     return 0;
  204. }
  205.  
  206.  
  207.  
  208.  
  209.  
  210. #include <stdio.h>
  211.  
  212. void reverse(int *A, int n)
  213. {
  214.     int *left = A;
  215.     int *right = A + n - 1;
  216.     while (left < right)
  217.     {
  218.         int temp = *left;
  219.         *left = *right;
  220.         *right = temp;
  221.         left++;
  222.         right--;
  223.     }
  224. }
  225.  
  226. int main() {
  227.     int num[6] = {1, 2, 3, 4, 5, 6};
  228.     reverse(num, 6);
  229.     return 0;
  230. }
  231.  
  232.  
  233.  
  234.  
  235.  
  236. #include <stdio.h>
  237. int sum(int *A, int n)
  238. {
  239.     int total = 0;
  240.     for(int i=0 ; i < n; i++)
  241.     {
  242.         total += A[i];
  243.     }
  244.     A[1] = 100;
  245.     return total;
  246. }
  247.  
  248. int main() {
  249.     int num[5] = {1,2,3,4,5};
  250.     int c = sum(num, 5);
  251.     printf("%d",num[1]);
  252.     return 0;
  253. }
  254.  
  255.  
  256.  
  257.  
  258. #include <stdio.h>
  259. int sum(int *A, int n)
  260. {
  261.     int total = 0;
  262.     for(int i=0 ; i < n; i++)
  263.     {
  264.         total += *(A+i);
  265.     }
  266.     A[1] = 100;
  267.     return total;
  268. }
  269.  
  270. int main() {
  271.     int num[5] = {1,2,3,4,5};
  272.     int c = sum(num, 5);
  273.     printf("%d",num[1]);
  274.     return 0;
  275. }
  276.  
  277.  
  278.  
  279.  
  280. #include <stdio.h>
  281. int sum(int A[], int n)
  282. {
  283.     int total = 0;
  284.     for(int i=0 ; i < n; i++)
  285.     {
  286.         total += *(A+i);
  287.     }
  288.     A[1] = 100;
  289.     return total;
  290. }
  291.  
  292. int main() {
  293.     int num[5] = {1,2,3,4,5};
  294.     int c = sum(num, 5);
  295.     printf("%d",num[1]);
  296.     return 0;
  297. }
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304. #include <stdio.h>
  305. int *create()
  306. {
  307.     int num[5] = {1,2,3,4,5};
  308.     return num;
  309. }
  310.  
  311. int main() {
  312.     int *p = create();
  313.     return 0;
  314. }
  315.  
  316.  
  317.  
  318.  
  319. #include <stdio.h>
  320. #include <stdlib.h>
  321.  
  322. int *create()
  323. {
  324.     int *num = malloc(5 * sizeof(int));
  325.     if (num == NULL)
  326.     {
  327.         printf("Could not allocate");
  328.         return NULL;
  329.     }
  330.    
  331.     for(int i = 0;i<5; i++)
  332.       num[i] = (i+1);
  333.     return num;
  334. }
  335.  
  336. int main() {
  337.     int *p = create();
  338.     free(p);
  339.     return 0;
  340. }
  341.  
  342.  
  343.  
  344.  
  345.  
  346. #include <stdio.h>
  347. #include <stdlib.h>
  348.  
  349. int main() {
  350.     int arr[5];
  351.     int *num = malloc(5 * sizeof(int));
  352.     free(num);
  353.     return 0;
  354. }
  355.  
  356.  
  357.  
  358.  
  359.  
  360. #include <stdio.h>
  361. #include <stdlib.h>
  362.  
  363. int *add(int A[], int n, int num)
  364. {
  365.     int *arr = malloc((n + 1) * sizeof(int));
  366.     if (arr == NULL)
  367.     {
  368.         printf("Could not allocate");
  369.         return NULL;
  370.     }
  371.     for (int i = 0; i < n; i++)
  372.     {
  373.         arr[i] = A[i];
  374.     }
  375.     arr[n] = num;
  376.     return arr;
  377. }
  378.  
  379. int main() {
  380.     int A[5] = {10, 20, 30, 40, 50};
  381.     int *p = add(A, 5, 60);
  382.     int *q = add(p, 6, 70);
  383.     free(p);
  384.     free(q);
  385.     return 0;
  386. }
  387.  
  388.  
  389.  
  390.  
  391. #include <stdio.h>
  392. #include <stdlib.h>
  393.  
  394. int *add(int A[], int n, int num)
  395. {
  396.     int *arr = malloc((n + 1) * sizeof(int));
  397.     if (arr == NULL)
  398.     {
  399.         printf("Could not allocate");
  400.         return NULL;
  401.     }
  402.     for (int i = 0; i < n; i++)
  403.     {
  404.         arr[i] = A[i];
  405.     }
  406.     arr[n] = num;
  407.     return arr;
  408. }
  409.  
  410. int main() {
  411.     int *arr = NULL;
  412.     int n = 0, num;
  413.     while (1)
  414.     {
  415.         scanf("%d", &num);
  416.         if (num == -1)
  417.             break;
  418.         int *newarr = add(arr, n, num);
  419.         if (newarr == NULL)
  420.         {
  421.             printf("Program failed");
  422.             break;
  423.         }
  424.         free(arr);
  425.         arr = newarr;
  426.         n++;
  427.     }
  428.     free(arr);
  429.     return 0;
  430. }
  431.  
  432.  
  433.  
  434.  
  435. #include <stdio.h>
  436. #include <stdlib.h>
  437.  
  438. int *remove_at(int *arr, int n, int index)
  439. {
  440.     int *newarr = malloc((n - 1) * sizeof(int));
  441.     if (newarr == NULL)
  442.     {
  443.         printf("Could not allocate");
  444.         return NULL;
  445.     }
  446.     int *p = newarr;
  447.     for (int i = 0; i < n; i++)
  448.     {
  449.         if (i == index)
  450.         {
  451.             arr++;
  452.             continue;
  453.         }
  454.         *p = *arr;
  455.         arr++;
  456.         p++;
  457.     }
  458.     return newarr;
  459. }
  460.  
  461. int main() {
  462.     int A[5] = {1, 2, 3, 4, 5};
  463.     int *p = remove_at(A, 5, 2);
  464.     free(p);
  465.     return 0;
  466. }
  467.  
  468.  
  469.  
  470.  
  471.  
Add Comment
Please, Sign In to add comment