free

    1

    1답변

    동적으로 두 개의 배열에 1 백만 개의 셀을 동적으로 할당했습니다. 한 배열은 정수를 보유하고 하나의 배열은 고정 길이의 문자열에 대한 포인터를 보유합니다. gdb를 사용하여 프로그램을 실행하면 오류가 발생합니다 : free(): invalid next size (fast). 나는 불법적 인 방식으로 기억을 풀어 놓아야한다. 그러나 나는 그 방법을 알 수

    3

    1답변

    double matrix_a[nrows][ncols]으로 초기화하지 않고 [i][j]을 사용할 수있는 C로 행렬을 할당하는 흥미로운 방법을 발견했습니다. 할당은 double (*matrix_a)[ncols] = (double (*)[ncols])malloc(sizeof(double) * (nrows) * (ncols)); 입니다. 그러나이 할당 유형을

    -1

    3답변

    malloc.And를 사용하여 링크 목록의 끝에 동적으로 생성 된 노드를 추가하는 함수를 작성한 다음 함수의 마지막 줄에서 포인터 temp의 메모리 공간을 할당 해제하려고했습니다. addnodelast(int data){ struct node* temp =(struct node*)malloc(sizeof(struct node)); temp->data=d

    0

    1답변

    , 을 세그 폴트하지만 그것을 무료로 올 때, 나는 세그먼트 폴트을 얻었다. typedef struct list_elem_ { void *data; struct list_elem_ *next; } list_elem; typedef struct link_list_ { int size; int (*mat

    3

    3답변

    strcat, strcpy 및 유사 함수와 같은 많은 함수는 실제 값을 반환하지 않지만 매개 변수 중 하나 (일반적으로 버퍼)를 변경합니다. 이것은 물론 부작용의 보트로드를 만듭니다. 새 문자열을 반환하는 것이 훨씬 더 우아하지 않습니까? 왜 이것이 끝나지 않았습니까? 예 : char *copy_string(char *text, size_t length)

    -1

    1답변

    free()가 c의 메모리를 해제하거나 malloc에 ​​의해 할당 된 메모리의 데이터를 지우는 것을 알고 싶습니다. #include<stdio.h> #include<stdlib.h> int main() { int n; printf("enter the size of n:\n"); scanf("%d", &n); in

    -4

    4답변

    제 문제는 메모리를 올바르게 할당하는 방법이 잘 모르겠다는 것입니다. 나는 그것을 연구했지만 아무 소용이 없습니다. malloc에 ​​대한 도움이 될 것입니다. int main(int argc, char *argv[]) { int i, a[5000], c = 1, m, n, input; scanf("%d", &input);

    0

    2답변

    단일 함수에서 링크 된 모든 멤버를 삭제하는 데 어려움을 겪고 있습니다. 아래에서 보는 것처럼 그것을 해체하면 잘 작동하지만 이것은 비효율적으로 보이며이를 수행하는 올바른 방법을 찾아야합니다. 모든 노드를 해제하려면 먼저 다른 노드의 모든 노드를 해제 한 다음 헤드 링크를 해제하는 기능이 있어야합니다. 이것은 쉽게 할 수있는 것처럼 보이지만 문제가 있습니다

    1

    2답변

    에 대한 포인터에 메모리를 무료로 나는이 (나쁜) 코드 void function(deq** dq, int data) { // TODO: add a new element at the end of the queue deq *temp = (dequeue*)malloc(sizeof(dequeue)); deq *copy = (*dq);

    1

    3답변

    int *p=malloc(20); 이제 힙은 20 바이트의 메모리를 할당합니다. 그리고 첫 번째 바이트의 주소를 포인터 p로 반환합니다 (NULL 포인터가 반환되지 않는다고 가정). 지금 내가 이렇게 int *q=realloc(p, 40); 이제 다음과 같다 가능성 : 1]. q = p 2]. q! = p 3]. 이제 free(p); 어떻게됩니까