Standard_C_메모리 조작

1729 단어

1 간단한 사례

#define  _CRT_SECURE_NO_WARNINGS
#include <stdlib.h>
#include <string.h>
#include <stdio.h>

typedef struct data_type {
	char name[20];
	int age;
} data;

int test_malloc(){
	
	data *bob;
	bob = (data*)malloc(sizeof(data));
	if (bob != NULL) {
		bob->age = 22;
		strcpy(bob->name, "Robert");
		printf("%s is %d years old
", bob->name, bob->age); } free(bob); return 0; } void main(){ test_malloc(); printf("hello...."); system("pause"); return; }

2 API 판독


1 calloc 구문: #include void *calloc( size_t num, size_t size ); 기능: 함수는num을 가리키는 그룹 공간을 되돌려줍니다. 모든 그룹 요소의 크기는size입니다.오류가 발생하면 NULL로 돌아갑니다.2 free 구문: #include void free( void *ptr ); 기능: 함수는 나중에 사용할 수 있도록 포인터 ptr가 가리키는 공간을 방출합니다.포인터 ptr는 이전의malloc(),calloc(),realloc()에 대한 호출로 되돌아와야 합니다.예: typedef struct datatype { int age; char name[20]; } data; data *willy; willy = (data*) malloc( sizeof(willy) ); ... free( willy ); 3 malloc 구문: #include void *malloc( size_t size ); 기능: 함수는 크기가 크기인 공간을 가리키며 오류가 발생하면 NULL을 되돌려줍니다.저장 공간의 바늘은 반드시 무더기여야 하며, 창고가 되어서는 안 된다.이렇게 하면 이후에free 함수로 공간을 방출할 수 있다.예: typedef struct datatype { int age; char name[20]; } data; data *bob; bob = (data*) malloc( sizeof(data) ); if( bob != NULL ) { bob->age = 22; strcpy( bob->name, "Robert"); printf( "%s is %d years old", bob->name, bob->age ); } free( bob ); 4 realloc 구문: #include void *realloc( void *ptr, size_t size ); 기능: 함수는 ptr 대상의 저장 공간을 주어진 크기로 변경합니다.매개변수 크기는 원래 크기보다 크거나 작을 수 있습니다.반환 값은 오류가 발생하면 NULL을 반환하는 새 공간을 가리키는 포인터입니다.

좋은 웹페이지 즐겨찾기