C 언어
이 장에서는 C의 동적 메모리 관리에 대해 설명합니다. C 프로그래밍 언어는 메모리 할당 및 관리를 위한 여러 기능을 제공합니다. 이러한 기능은
시니어 번호 | 기능 및 설명 |
---|---|
1 | 무효 *calloc(int num, int 크기); 이 함수는 num의 배열을 할당합니다. 바이트 단위의 각 요소는 크기가 됩니다. . |
2 | 무효(무효 *주소); 이 함수는 주소로 지정된 메모리 블록의 블록을 해제합니다. |
3 | 무효 *malloc(size_t 크기); 이 함수는 num의 배열을 할당합니다. 바이트를 초기화하지 않고 그대로 둡니다. |
4 | void *realloc(void *address, int newsize); 이 함수는 newsize까지 확장하는 메모리를 재할당합니다. . |
프로그래밍하는 동안 배열의 크기를 알고 있으면 쉽고 배열로 정의할 수 있습니다. 예를 들어, 사람의 이름을 저장하려면 최대 100자까지 입력할 수 있으므로 다음과 같이 정의할 수 있습니다. -
char name[100];
그러나 이제 저장해야 하는 텍스트의 길이에 대해 전혀 모르는 상황을 고려해 보겠습니다. 예를 들어 주제에 대한 자세한 설명을 저장하려고 합니다. 여기에서 필요한 메모리 양을 정의하지 않고 문자에 대한 포인터를 정의해야 하며 나중에 요구 사항에 따라 아래 예제와 같이 메모리를 할당할 수 있습니다.
라이브 데모#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char name[100]; char *description; strcpy(name, "Zara Ali"); /* allocate memory dynamically */ description = malloc( 200 * sizeof(char) ); if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memory\n"); } else { strcpy( description, "Zara ali a DPS student in class 10th"); } printf("Name = %s\n", name ); printf("Description: %s\n", description ); }
위의 코드를 컴파일하여 실행하면 다음과 같은 결과가 나온다.
Name = Zara Ali Description: Zara ali a DPS student in class 10th
calloc();을 사용하여 동일한 프로그램을 작성할 수 있습니다. 다음과 같이 malloc을 calloc으로 교체해야 합니다. -
calloc(200, sizeof(char));
따라서 크기가 정의되면 변경할 수 없는 배열과 달리 메모리를 할당하는 동안 모든 크기 값을 전달할 수 있으며 완전히 제어할 수 있습니다.
프로그램이 나오면 운영 체제는 프로그램에서 할당한 모든 메모리를 자동으로 해제하지만 더 이상 메모리가 필요하지 않은 경우 좋은 방법으로 free() .
또는 realloc() 함수를 호출하여 할당된 메모리 블록의 크기를 늘리거나 줄일 수 있습니다. . 위의 프로그램을 다시 한 번 확인하고 realloc() 및 free() 함수를 사용합시다 -
라이브 데모#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char name[100]; char *description; strcpy(name, "Zara Ali"); /* allocate memory dynamically */ description = malloc( 30 * sizeof(char) ); if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memory\n"); } else { strcpy( description, "Zara ali a DPS student."); } /* suppose you want to store bigger description */ description = realloc( description, 100 * sizeof(char) ); if( description == NULL ) { fprintf(stderr, "Error - unable to allocate required memory\n"); } else { strcat( description, "She is in class 10th"); } printf("Name = %s\n", name ); printf("Description: %s\n", description ); /* release memory using free() function */ free(description); }
위의 코드를 컴파일하여 실행하면 다음과 같은 결과가 나온다.
Name = Zara Ali Description: Zara ali a DPS student.She is in class 10th
추가 메모리를 다시 할당하지 않고 위의 예를 시도할 수 있으며 strcat() 함수는 설명에 사용 가능한 메모리가 부족하여 오류가 발생합니다.
C 언어
재고 관리 소프트웨어의 정의 재고 관리 소프트웨어는 조직에 재고의 모든 측면을 추적할 수 있는 기능을 제공하는 컴퓨터 기반 솔루션입니다. 재고 관리 소프트웨어는 응용 프로그램에 따라 다릅니다. POS 재고 관리에서 소프트웨어는 재고 수준, 주문, 판매 및 배송을 추적하는 반면 제조용 재고 관리 소프트웨어에는 작업 주문, 자재 명세서 및 생산과 관련된 기타 문서 생성이 포함됩니다. . 재고 관리 소프트웨어는 특히 구식 양식이나 스프레드시트를 사용하는 경우 재고 데이터 유지 프로세스를 간소화하려는 조직에서 사용하는 도구입니다.재고 관리
자산 관리의 정의 자산 관리는 재무 회계, 예방 유지 관리 및 도난 방지 목적으로 회사의 고정 및/또는 이동 가능한 자산을 추적 및 모니터링하는 프로세스입니다. 자산 관리는 규정 준수 및 수익 관리에 중요하지만 여러 위치, 차량, 현장 서비스 작업자 또는 기타 복잡한 자산 상황이 있는 조직의 경우 특히 복잡해집니다. 효과적인 자산 추적 솔루션은 효율적인 위치 모니터링, 재고 수, 유지 관리 감독, 자산 상태 및 고가치 및 비즈니스 크리티컬 자산에 대한 감가상각에 매우 중요합니다.조직은 자산 관리 소프트웨어 솔루션과 같은 자산 관리