malloc없이 char * str에 들어가고, segfault가 없습니까?

NotGaeL

Cygwin의 gcc를 사용하여이 C 프로그램을 방금 컴파일했습니다.

#include <stdio.h>

void main (){
    char *str;
    gets(str);
    printf("%s",str);
}

따로 설정하는 gets것은 더 이상 사용되지 않습니다 . 이것은 str에 메모리를 할당하지 않기 때문에 중단되어야하지만 매우 긴 입력에서도 작동합니다. 예를 들어 char str [16]을 설정하면 할당 된 길이를 몇 문자 만 초과하면 중단됩니다.

세분화 오류가 발생하지 않는 이유는 무엇입니까?

Lee Duhem

초기화되지 않은 포인터가 가리키는 액세스 메모리 영역은 정의되지 않은 동작 이며 충돌이 발생할 수 있으며 정상적으로 작동하는 것처럼 보일 수 있습니다. 한마디로 그 행동을 예측할 수 없습니다.

세분화 오류가 발생하지 않는 이유는 무엇입니까?

초기화되지 않은 포인터는 결정되지 않은 값을 가지며, 실수로 쓰기 가능한 영역을 가리키면 해당 프로그램이 정상적으로 "작동"합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

왜 const char이 rodata 세그먼트에 들어 가지 않습니까?

분류에서Dev

두 개의 윈도우가 설치되어 있고 그들 사이에 통신이 없습니까?

분류에서Dev

gcc 및 clang을 사용하는 'std :: basic_ostream <char>'에 'str'이라는 멤버가 없지만 msvc에는 문제가 없습니다.

분류에서Dev

C에서 char * 배열에 쓰면 segfault가 발생합니다.

분류에서Dev

char **를 사용하면 char *가 작동하는 segfault가 발생하는 이유는 무엇입니까?

분류에서Dev

바이트가 아니라 str이어야합니다. | 'str'에는 'decode'속성이 없습니다.

분류에서Dev

$ str1에 $ str2가없는 이유는 무엇입니까? (PHP strpos)

분류에서Dev

byte, short 및 char 사용에 의미가 없습니다.

분류에서Dev

"경고 : 할당은 캐스트없이 포인터에서 정수를 만듭니다"char malloc 사용

분류에서Dev

str에는 django에 객체 추가가 없습니다.

분류에서Dev

std :: sregex_iterator match str ()에 char *를 가져올 수 있습니까?

분류에서Dev

LPCSTR에는 'long'이없고 UINT_PTR에는 포인터가 없습니까?

분류에서Dev

Mootools .addEvent가 ng-repeat 내부에 들어갈 수 없습니까?

분류에서Dev

Protostar Stack6-이유가없는 Segfault?

분류에서Dev

내 키보드에는 "미디어"키가 없습니다. 그들없이 미디어를 제어 할 수 있습니까?

분류에서Dev

내 키보드에는 "미디어"키가 없습니다. 그들없이 미디어를 제어 할 수 있습니까?

분류에서Dev

어딘가에 return 문이 없습니까?

분류에서Dev

__do_global_ctors segfault 프로젝트의 어딘가에 위치를 찾을 수 없습니다.

분류에서Dev

이 프로그램에 왜 segfault가 표시되지 않습니까?

분류에서Dev

오버로드 된 스트림 연산자에서 std :: basic_string <char> segfault가 발생하는 이유는 무엇입니까?

분류에서Dev

malloc / str 메소드없이 unsigned char 배열로 캐스트 된 구조체

분류에서Dev

Google API 콘솔에서 redirect_url은 어디에 지정되어 있습니까? 목록에없고 추가 할 수있는 옵션이 없습니다.

분류에서Dev

Google API 콘솔에서 redirect_url은 어디에 지정되어 있습니까? 목록에없고 추가 할 수있는 옵션이 없습니다.

분류에서Dev

출력이 없습니다. 내 코드에 어떤 문제가 있습니까?

분류에서Dev

검은 색 화면없이 BIOS에 들어가려면 어떻게합니까?

분류에서Dev

discord.py "str"에는 "disconnect"멤버가 없습니다.

분류에서Dev

SQL에서 테이블을 만들려고하는데 키워드가 없어서 수정하는 방법을 찾을 수 없습니다.

분류에서Dev

누군가 나에게 손을 주고이 스크립트를 예를 들어 줄 수 있습니까? 장고

분류에서Dev

ViewController에 이니셜 라이저가 없습니까?

Related 관련 기사

  1. 1

    왜 const char이 rodata 세그먼트에 들어 가지 않습니까?

  2. 2

    두 개의 윈도우가 설치되어 있고 그들 사이에 통신이 없습니까?

  3. 3

    gcc 및 clang을 사용하는 'std :: basic_ostream <char>'에 'str'이라는 멤버가 없지만 msvc에는 문제가 없습니다.

  4. 4

    C에서 char * 배열에 쓰면 segfault가 발생합니다.

  5. 5

    char **를 사용하면 char *가 작동하는 segfault가 발생하는 이유는 무엇입니까?

  6. 6

    바이트가 아니라 str이어야합니다. | 'str'에는 'decode'속성이 없습니다.

  7. 7

    $ str1에 $ str2가없는 이유는 무엇입니까? (PHP strpos)

  8. 8

    byte, short 및 char 사용에 의미가 없습니다.

  9. 9

    "경고 : 할당은 캐스트없이 포인터에서 정수를 만듭니다"char malloc 사용

  10. 10

    str에는 django에 객체 추가가 없습니다.

  11. 11

    std :: sregex_iterator match str ()에 char *를 가져올 수 있습니까?

  12. 12

    LPCSTR에는 'long'이없고 UINT_PTR에는 포인터가 없습니까?

  13. 13

    Mootools .addEvent가 ng-repeat 내부에 들어갈 수 없습니까?

  14. 14

    Protostar Stack6-이유가없는 Segfault?

  15. 15

    내 키보드에는 "미디어"키가 없습니다. 그들없이 미디어를 제어 할 수 있습니까?

  16. 16

    내 키보드에는 "미디어"키가 없습니다. 그들없이 미디어를 제어 할 수 있습니까?

  17. 17

    어딘가에 return 문이 없습니까?

  18. 18

    __do_global_ctors segfault 프로젝트의 어딘가에 위치를 찾을 수 없습니다.

  19. 19

    이 프로그램에 왜 segfault가 표시되지 않습니까?

  20. 20

    오버로드 된 스트림 연산자에서 std :: basic_string <char> segfault가 발생하는 이유는 무엇입니까?

  21. 21

    malloc / str 메소드없이 unsigned char 배열로 캐스트 된 구조체

  22. 22

    Google API 콘솔에서 redirect_url은 어디에 지정되어 있습니까? 목록에없고 추가 할 수있는 옵션이 없습니다.

  23. 23

    Google API 콘솔에서 redirect_url은 어디에 지정되어 있습니까? 목록에없고 추가 할 수있는 옵션이 없습니다.

  24. 24

    출력이 없습니다. 내 코드에 어떤 문제가 있습니까?

  25. 25

    검은 색 화면없이 BIOS에 들어가려면 어떻게합니까?

  26. 26

    discord.py "str"에는 "disconnect"멤버가 없습니다.

  27. 27

    SQL에서 테이블을 만들려고하는데 키워드가 없어서 수정하는 방법을 찾을 수 없습니다.

  28. 28

    누군가 나에게 손을 주고이 스크립트를 예를 들어 줄 수 있습니까? 장고

  29. 29

    ViewController에 이니셜 라이저가 없습니까?

뜨겁다태그

보관