구조와 포인터에 대한이 코드를 이해하는 데 도움이 필요합니다.

B 수만 스

이 사이트에서 "MIME 유형"퍼즐을 풀려고 노력했습니다 : https://www.codingame.com/games/puzzles/

다음 사이트에서이 퍼즐에 대한 답을 찾았습니다. http://ethiery.vvv.enseirb-matmeca.fr/CGsolo/mime-type.html

  1. 누군가 p = d.elmts+i;가 위 링크 (49 행)이 무엇을하는지 설명 할 수 있습니까 ?
  2. 49 번째 줄을 생략하고 대신 다음 줄에서이 코드를 사용하면 작동하지 않는 이유는 무엇입니까? (d.elmts [i] .ext / mime를 사용하여 ext 및 mime을 인쇄하려고 할 때까지 오류가 표시되지 않습니다.) 내가 사용할 때 매력처럼 작동합니다 p = d.elmts+i;. (stackoverflow에서 처음입니다. 이것이 코드 조각으로 나타날지 잘 모르겠습니다. 그렇지 않으면 사과드립니다)

암호

d.elmts[i].ext = malloc(11*sizeof(char));
d.elmts[i].mime = malloc(51*sizeof(char));
scanf("%s %s\n",d.elmts[i].ext, d.elmts[i].mime);
그랜트 섀넌
  1. p는 구조체에 대한 포인터입니다. 이것은 p가 메모리에있는 구조체의 시작 주소를 '보유'한다는 것을 의미합니다. 따라서 p = d.elmts + i는 현재 구조체에 대해 메모리의 시작 주소를 나타냅니다 (i는 주소를 나타냅니다). 오프셋). 이 예제에서 메모리는 'dictSize'구조 (즉, 구조 수)에 할당되었습니다. 구조에 대한 메모리는 연속적으로 (서로 나란히) 할당되므로 예약 된 메모리 (iedelemts)의 시작 주소와 일부 오프셋 (예 : i)을 사용하여 쉽게 액세스 할 수 있습니다.

  2. 구조체에 대한 포인터가 선언되면 화살표 표기법을 사용할 때 포인터를 통해서만 기본 구조체 멤버에 액세스 할 수 있습니다. 구조가 선언 된 경우 (구조에 대한 포인터가 아님) 점 표기법을 사용하여 기본 구조 멤버에 액세스 할 수 있습니다.

  3. C에서 '[]'표기법을 사용하면 실제 값 (할당 된 메모리에)을 할당하려는 것으로 해석 될 수 있습니다. 반면에 라인 50과 51에 사용 된 포인터 표기법은 할당 메모리를 활성화하는 것입니다. 즉 시작을 가리 킵니다. 할당되는 메모리의 주소-각 멤버가 가정 할 수있는 가능한 값을 유지하기 위해, 즉 아직이 메모리에 값을 넣지 않은 경우 먼저 메모리를 생성 / 할당해야합니다.

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

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

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

주어진 코드에서 포인터를 이해하는 데 도움이 필요합니다.

분류에서Dev

이미지에 대해이 코드를 벡터화하는 데 도움이 필요합니다.

분류에서Dev

어려운 데이터 구조 문제를 해결하는 데 도움이 필요합니다.

분류에서Dev

C의 포인터 int, 코드 조각을 이해하고 단순화하는 데 도움이 필요합니다.

분류에서Dev

내 내부 조인 SQL 문 및 C # 코드를 수정하는 데 도움이 필요합니다.

분류에서Dev

양식을 필터링하기 위해 코드에서 오류를 찾는 데 도움이 필요합니다.

분류에서Dev

SquareSpace에서 DOM 요소를 참조하는 데 도움이 필요합니다.

분류에서Dev

이 TSQL 조인 동작을 이해하는 데 도움이 필요합니다.

분류에서Dev

파이썬 코드를 이해하는 데 도움이 필요합니다.

분류에서Dev

파이썬 코드를 이해하는 데 도움이 필요합니다

분류에서Dev

이 코드를 이해하는 데 도움이 필요합니다.

분류에서Dev

이 C 코드 (배열)를 이해하는 데 도움이 필요합니다.

분류에서Dev

C # 학습,이 코드를 이해하는 데 도움이 필요합니다.

분류에서Dev

조인 테이블 문제를 해결하는 데 도움이 필요합니다.

분류에서Dev

위도와 경도를 Google지도에 전달합니다. 내 코드를 수정하는 데 도움이 필요한 사람

분류에서Dev

이 코드를 C로 해결하는 데 도움이 필요합니다.

분류에서Dev

Perl 코드를 이해하는 데 도움이 필요합니다.

분류에서Dev

Perl 코드를 이해하는 데 도움이 필요합니다.

분류에서Dev

Ruby 코드를 이해하는 데 도움이 필요합니다.

분류에서Dev

코드의 일부를 이해하는 데 도움이 필요합니다-Python

분류에서Dev

Laravel Voyager에서 TinyMCE를 구성하는 데 도움이 필요합니다.

분류에서Dev

조인 주위에 머리를 감싸는 데 도움이 필요합니다.

분류에서Dev

D3.js : 도구 설명을 위해 데이터를 가져 오는 데 도움이 필요합니다.

분류에서Dev

SQLite 데이터를 얻는 데 도움이 필요합니다.

분류에서Dev

SQLite에서 AUTOINCREMENT를 이해하는 데 도움이 필요합니다.

분류에서Dev

이 인터페이스를 구현하려고하는데 도움이 필요합니다.

분류에서Dev

자바에서 C #에 상응하는 코드 조각을 번역하는 데 도움이 필요합니다.

분류에서Dev

나는 머지 소트 및 병합에 대한 내 코드 문제를 해결하는 데 도움이 필요

분류에서Dev

이 코드에 대한 도움이 필요합니다.

Related 관련 기사

  1. 1

    주어진 코드에서 포인터를 이해하는 데 도움이 필요합니다.

  2. 2

    이미지에 대해이 코드를 벡터화하는 데 도움이 필요합니다.

  3. 3

    어려운 데이터 구조 문제를 해결하는 데 도움이 필요합니다.

  4. 4

    C의 포인터 int, 코드 조각을 이해하고 단순화하는 데 도움이 필요합니다.

  5. 5

    내 내부 조인 SQL 문 및 C # 코드를 수정하는 데 도움이 필요합니다.

  6. 6

    양식을 필터링하기 위해 코드에서 오류를 찾는 데 도움이 필요합니다.

  7. 7

    SquareSpace에서 DOM 요소를 참조하는 데 도움이 필요합니다.

  8. 8

    이 TSQL 조인 동작을 이해하는 데 도움이 필요합니다.

  9. 9

    파이썬 코드를 이해하는 데 도움이 필요합니다.

  10. 10

    파이썬 코드를 이해하는 데 도움이 필요합니다

  11. 11

    이 코드를 이해하는 데 도움이 필요합니다.

  12. 12

    이 C 코드 (배열)를 이해하는 데 도움이 필요합니다.

  13. 13

    C # 학습,이 코드를 이해하는 데 도움이 필요합니다.

  14. 14

    조인 테이블 문제를 해결하는 데 도움이 필요합니다.

  15. 15

    위도와 경도를 Google지도에 전달합니다. 내 코드를 수정하는 데 도움이 필요한 사람

  16. 16

    이 코드를 C로 해결하는 데 도움이 필요합니다.

  17. 17

    Perl 코드를 이해하는 데 도움이 필요합니다.

  18. 18

    Perl 코드를 이해하는 데 도움이 필요합니다.

  19. 19

    Ruby 코드를 이해하는 데 도움이 필요합니다.

  20. 20

    코드의 일부를 이해하는 데 도움이 필요합니다-Python

  21. 21

    Laravel Voyager에서 TinyMCE를 구성하는 데 도움이 필요합니다.

  22. 22

    조인 주위에 머리를 감싸는 데 도움이 필요합니다.

  23. 23

    D3.js : 도구 설명을 위해 데이터를 가져 오는 데 도움이 필요합니다.

  24. 24

    SQLite 데이터를 얻는 데 도움이 필요합니다.

  25. 25

    SQLite에서 AUTOINCREMENT를 이해하는 데 도움이 필요합니다.

  26. 26

    이 인터페이스를 구현하려고하는데 도움이 필요합니다.

  27. 27

    자바에서 C #에 상응하는 코드 조각을 번역하는 데 도움이 필요합니다.

  28. 28

    나는 머지 소트 및 병합에 대한 내 코드 문제를 해결하는 데 도움이 필요

  29. 29

    이 코드에 대한 도움이 필요합니다.

뜨겁다태그

보관