Xcode : malloc 크기는 중요하지 않은 것 같습니다.

바나나 온더 월

아래 코드에서 malloc의 매개 변수를 어떤 값 (적어도 내가 시도한 값)으로 변경할 수 있으며 모든 것이 괜찮아 보입니다.

예를 들어 "3 * sizeof (float)"를 "3 * sizeof (char)"또는 0으로 변경할 수 있습니다. 그리고 여전히 "올바른"결과를 얻을 수 있습니다. 힙 크기는 전혀 중요하지 않은 것 같습니다.

이것은 정말 나를 혼란스럽게합니다. 어떻게 이런 일이 일어날 수 있습니까?

코드는 Xcode 5에서 작성되고 실행됩니다.

float *favorites = malloc(3 * sizeof(float));

favorites[0] = 3.14158;
favorites[1] = 2.71828;
favorites[2] = 1.41421;

for (int i = 0; i < 3; i++) {
    printf("%.4f is favorite %d\n", favorites[i], i);
}

free(favorites);
favorites = NULL;
해킹

그렇게하면 프로그램이 정의되지 않은 동작을 호출하기 때문 입니다. UB가 호출되면 모든 베팅이 해제됩니다. 예상하거나 예상치 못한 결과를 얻을 수 있습니다.

이제 메모리를 할당하지 않고 favoritee

float *favorites ;
...

무슨 일이 일어나는지 보시죠?

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Xcode 11 딥 링크는 AppDelegate에서 함수를 호출하지 않기 때문에 다른 것 같습니다.

분류에서Dev

Xcode 4.2에서 Xcode 5로 업그레이드 할 때 ARC가 작동하지 않는 것 같습니다.

분류에서Dev

가설은 pytest의 maxfail 인수를 존중하지 않는 것 같습니다.

분류에서Dev

변수가 초기화되지 않은 것 같습니다.

분류에서Dev

GtkEntry 선택 영역은 아무것도하지 않는 것 같습니다

분류에서Dev

dd 명령은 아무것도 수행하지 않는 것 같습니다.

분류에서Dev

Xcode 8 Codegen 기능은 아무것도 생성하지 않습니다.

분류에서Dev

기본 맞춤 요소가 작동하지 않는 것 같습니다.

분류에서Dev

VB에서 하이퍼 링크를 만드는 것은 따옴표가 옳지 않은 것 같습니다.

분류에서Dev

중첩 된 다중 계층 비동기 / 대기 대기가 대기하지 않는 것 같습니다.

분류에서Dev

일치하는 공백은 탐욕스럽지 않은 것 같습니다.

분류에서Dev

이 중 하나는 다른 것 같지 않습니다. 배열에서?

분류에서Dev

FutureTask가 중단되지 않는 것 같습니다.

분류에서Dev

Vim 기능이 인식되지 않는 것 같습니다

분류에서Dev

추가 () 기간이 추가되지 않는 것 같습니다.

분류에서Dev

Google Colab 노트북은 PYTHONPATH를 사용하지 않는 것 같습니다.

분류에서Dev

EfficientNet은 keras.applications에 존재하지 않는 것 같습니다.

분류에서Dev

bang은 .gitignore의 파일을 제외하지 않는 것 같습니다.

분류에서Dev

SignalR Core가 Newtonsoft의 TypeNameHandling 설정을 존중하지 않는 것 같습니다.

분류에서Dev

Rails 4의 중첩 된 양식이 작동하지 않는 것 같습니다.

분류에서Dev

setof / 3가 중복을 제거하지 않는 것 같습니다.

분류에서Dev

Promise.all은 모든 것이 끝날 때까지 기다리지 않는 것 같습니다.

분류에서Dev

중포 기지 쿼리의 Andorid에서 작동하는 것 같다하지 않습니다

분류에서Dev

Bluemix 용 MobileFirst QA 구성 요소가 작동하지 않는 것 같습니다.

분류에서Dev

Bluemix 용 MobileFirst QA 구성 요소가 작동하지 않는 것 같습니다.

분류에서Dev

하위 쿼리가 작동하지 않는 것 같습니다.

분류에서Dev

"@ angular / core"에 의존하지 않는 것 같습니다. 이것은 오류입니다

분류에서Dev

다중 스크롤 JS가 제대로 작동하지 않는 것 같습니다.

분류에서Dev

Konva는 너비를 고려하지 않는 것 같습니다.

Related 관련 기사

  1. 1

    Xcode 11 딥 링크는 AppDelegate에서 함수를 호출하지 않기 때문에 다른 것 같습니다.

  2. 2

    Xcode 4.2에서 Xcode 5로 업그레이드 할 때 ARC가 작동하지 않는 것 같습니다.

  3. 3

    가설은 pytest의 maxfail 인수를 존중하지 않는 것 같습니다.

  4. 4

    변수가 초기화되지 않은 것 같습니다.

  5. 5

    GtkEntry 선택 영역은 아무것도하지 않는 것 같습니다

  6. 6

    dd 명령은 아무것도 수행하지 않는 것 같습니다.

  7. 7

    Xcode 8 Codegen 기능은 아무것도 생성하지 않습니다.

  8. 8

    기본 맞춤 요소가 작동하지 않는 것 같습니다.

  9. 9

    VB에서 하이퍼 링크를 만드는 것은 따옴표가 옳지 않은 것 같습니다.

  10. 10

    중첩 된 다중 계층 비동기 / 대기 대기가 대기하지 않는 것 같습니다.

  11. 11

    일치하는 공백은 탐욕스럽지 않은 것 같습니다.

  12. 12

    이 중 하나는 다른 것 같지 않습니다. 배열에서?

  13. 13

    FutureTask가 중단되지 않는 것 같습니다.

  14. 14

    Vim 기능이 인식되지 않는 것 같습니다

  15. 15

    추가 () 기간이 추가되지 않는 것 같습니다.

  16. 16

    Google Colab 노트북은 PYTHONPATH를 사용하지 않는 것 같습니다.

  17. 17

    EfficientNet은 keras.applications에 존재하지 않는 것 같습니다.

  18. 18

    bang은 .gitignore의 파일을 제외하지 않는 것 같습니다.

  19. 19

    SignalR Core가 Newtonsoft의 TypeNameHandling 설정을 존중하지 않는 것 같습니다.

  20. 20

    Rails 4의 중첩 된 양식이 작동하지 않는 것 같습니다.

  21. 21

    setof / 3가 중복을 제거하지 않는 것 같습니다.

  22. 22

    Promise.all은 모든 것이 끝날 때까지 기다리지 않는 것 같습니다.

  23. 23

    중포 기지 쿼리의 Andorid에서 작동하는 것 같다하지 않습니다

  24. 24

    Bluemix 용 MobileFirst QA 구성 요소가 작동하지 않는 것 같습니다.

  25. 25

    Bluemix 용 MobileFirst QA 구성 요소가 작동하지 않는 것 같습니다.

  26. 26

    하위 쿼리가 작동하지 않는 것 같습니다.

  27. 27

    "@ angular / core"에 의존하지 않는 것 같습니다. 이것은 오류입니다

  28. 28

    다중 스크롤 JS가 제대로 작동하지 않는 것 같습니다.

  29. 29

    Konva는 너비를 고려하지 않는 것 같습니다.

뜨겁다태그

보관