취업 인터뷰 중 친구에게 사용 가능한 RAM 양을 측정하는 프로그램을 작성하라는 요청을 받았습니다. 예상되는 대답은 이진 검색 방식으로 malloc()을 사용했습니다. 즉, 실패 메시지를받을 때까지 크고 큰 부분의 메모리를 할당하고, 부분 크기를 줄이며, 할당 된 메모리 양을 합산하는 것입니다. 이 방법은 실제 메모리가 아닌 가상 메모리의 양을 측정합니다.
문자열을 연결하고 결합 된 문자열을 반환하는 작은 함수를 만들었습니다. 그러나 함수에서 세 번째 변수에 메모리를 할당 했으므로 함수가 완료되면 메모리를 해제 할 것인가 아니면 나중에 메모리를 확보해야 할 것인가? 그리고 그것을 해제해야한다면, 가장 세련된 솔루션은 무엇일까요? 다음은 테스트 코드입니다. 그것은 작동하지만 메모리가 해제되었는지 또는 내 도구로
C에서 리턴 값을 절대 쓰지 않는 것이 가장 좋습니다. malloc(). 나는 컴파일러가 stdlib.h을 포함하지 않으면 malloc()이 int를 반환한다고 가정합니다. 물론 int가 아닌 int에 int를 할당하려고 시도하면 오류가 발생하지만 명시 적 캐스팅으로 그 오류를 덮을 수 있으므로 malloc()을 명시 적으로 캐스팅 할 위험이 있습니다. 내
내가 컴파일하고 다음 코드를 실행합니다 int *a = malloc(1024*1024*100*sizeof(int));
while(1)
;
(Cygwin에서의 GCC를 사용하여) Windows XP에서 작업 관리자에 따라 2232K로이 프로세스에 의해 메모리 사용, 을 보여줍니다 내게는 약 400000K가되어야한다. 내가 컴파일하고 다음 코드를 실행
나는이 같은 구조체를 사용하고 있습니다 : define struct _Fragment{
int a;
char *seq;
}Fragment;
내가 구조체를 초기화 할과의 malloc을 사용하여() 메소드는 다음 나는이 프로그램을 사용하는 것과이 Fragment *frag=malloc(10*sizeof(Fragment));
같은 동적
할당 한 메모리에 대한 포인터 만 포함하는 구조체가 있습니다. 재귀 적으로 각 요소를 자유롭게 호출하는 대신 포인터 인 각 요소를 해제하는 방법이 있습니까? model* mdl = malloc (...);
mdl->vertices = malloc (...);
mdl->normals = malloc (...);
mdl->uv_coords = malloc
아래의 코드 스 니펫이 있는데 동적 할당 인 'str'에서 할당하는 동안 충돌이 발생합니다. char *str;
int file_size;
FILE *fptr;
if (!(fptr = fopen(filename, "r"))) goto error1;
if ((fseek(fptr, 0L, SEEK_END) != 0)) got
함수를 통해 데이터를 할당하는 방법을 알고, 함수가 반환 된 후에도 데이터가 할당됩니다. 이것은 기본 유형 (int, char **) 및 사용자 정의 유형 모두에 대한 것입니다. 다음은 두 가지 코드 스 니펫입니다. 할당이 반환 된 후에도 둘 다 함수 내에 할당됩니다. int* nCheck = NULL;
int nCount = 4;
CallIntAll