programming languages/C

포인터와 배열 관계(실습)

book_lover 2024. 5. 23. 12:04

myfunc.h

#ifndef MYLIB_H
#define MYLIB_H
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void inputRandomArray(int *array, int size);
void printArray(int *array, int size);
#endif // MYLIB_H

myfunc.c

#include "myfunc.h"
void inputRandomArray(int *array, int size) {
  for (int i = 0; i < size; i++) {
    *(array + i) = (rand() % 100) + 1;
    // array[i] = (rand() % 100) + 1;
  }
}
void printArray(int *array, int size) {
  for (int i = 0; i < size; i++) {
    printf("%3d\t", *(array + i));
    // printf("%d ", array[i]);
    if ((i + 1) % 10 == 0)
      printf("\n");
  }
}

main

#include "myfunc.h"
#define SIZE 100

int main(void) {

  int number[SIZE];
  srand(time(NULL));
  inputRandomArray(number, SIZE);
  printArray(number, SIZE);
  return 0;
}

배열의 복사

myfunc.c

#include "myfunc.h"
void inputRandomArray(int *array, int size) {
  for (int i = 0; i < size; i++) {
    *(array + i) = (rand() % 100) + 1;
    // array[i] = (rand() % 100) + 1;
  }
}
void printArray(int *array, int size) {
  for (int i = 0; i < size; i++) {
    printf("%3d\t", *(array + i));
    // printf("%d ", array[i]);
    if ((i + 1) % 10 == 0)
      printf("\n");
  }
}
void arrayCopy(int *array, int *arrayCopy, int size) {
  for (int i = 0; i < size; i++) {
    *(arrayCopy + i) = *(array + i);
  }
}

myfunc.h

#ifndef MYLIB_H
#define MYLIB_H
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void inputRandomArray(int *array, int size);
void printArray(int *array, int size);
void arrayCopy(int *array, int *arrayCopy, int size);
#endif // MYLIB_H

main

#include "myfunc.h"
#define SIZE 10

int main(void) {

  int array1[SIZE];
  int array2[SIZE];
  srand(time(NULL));
  inputRandomArray(array1,SIZE);
  arrayCopy(array1, array2, SIZE);
  printArray(array1, SIZE);
  printArray(array2, SIZE);
  return 0;
}