깨알 C언어 | 36. 배열포인터

Поделиться
HTML-код
  • Опубликовано: 19 ноя 2024

Комментарии • 80

  • @piewow8259
    @piewow8259 Месяц назад

    80번째 댓글) 정처기에 안나왔으면 좋겠습니다.

  • @정진영-y9m
    @정진영-y9m 5 месяцев назад

    ❤(0:00 ~ 6:27)(6:30 ~ 10:06)(10:27 ~ 15:52)

  • @demateo6260
    @demateo6260 2 года назад +24

    문제보더니 제가 키우던 강아지도 도망갔습니다.

    • @HeungSsaem
      @HeungSsaem  2 года назад

      배열 포인터 문제 나왔을때, 정말 다들 당황했을꺼에요~~
      아주 신박한 개념을 들고 나왔지요..
      처음 나왔을때 개발자건 강사건 저 문제를 풀이한 사람이 없었어요..저도 마찬가지고..ㅜㅜ
      이번에도 아마 새로운 개념이 나올꺼 같은데...
      고건 제가 특강을 하나 만들어서 진행할게요~~
      감사합니다.

  • @홍선-i9i
    @홍선-i9i Год назад +1

    지금까지 잘 이해가 됬는대 예제 2번째에서 **(in+1)이 잘 이해가 안되요. 샘께서 in이 가리키고 있는 다음 공간이라고 하시는대 in+1이면 in이 100이고 101이 되는거 아닌가요? *(*in+1)하고 헷갈리는대 샘이 설명해주시는 화살표 위치가 다르네요. 그렇게 이해하면 될까요?

  • @jlim3913
    @jlim3913 Год назад +1

    4:28
    in = num; 으로 할당될 수 없는 경우로 에러나네요 (visual studio, 에러코드 E0513)
    -->(정정)위 에러는 Cpp에서의 에러였고, C에서는 문제없네요.. C나 Cpp나 에러나면 동일하게 날 줄알았는데 아니군요.

  • @user-fu2ec1rq8p
    @user-fu2ec1rq8p Год назад +1

    깨알 C언어 | 36. 배열포인터
    질문. 포인터 배열, 배열 포인터 다른 건가?
    # 배열포인터? 1:38
    포인터인데 배열,
    문. 1:54
    문. 배열 포인트 선언은 형태가 다름,
    포인터를 만들고 두 개씩 자른다,
    num에는 3개가 있으나 배열 포인터에서 자기가 알아서 2개 씩 잘라서 2차원 배열로 만든다,
    메모리 상에서 물리적으로 그대로 있으나, num[3]의 형태로, 논리적으로만 배열 포인터로 짤리는 것,
    1 2
    3
    문. 6:35
    123
    456
    789
    1234
    5678
    9
    (in+1) = in[1]
    문. 10:10 #오답
    # define n 3? 매크로, 앞으로 나오는 모든 n은 3으로 대체하겠다,
    malloc()? 동적으로 메모리에 할당하는 것, 변수 선언할 때, 크기를 정함,
    3행*3열*4바이트 짜리 int,
    인이나 아웃이나 똑같은 구조를 갖게 됌,
    답. 15:54
    문. 9:51 #오답
    printf("%d", **(in+1));
    in> in[0]
    in+1> in[1]을 의미

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~
      포인터배열과 배열포인터는 다릅니다.
      포인터배열은 배열 요소에 주소값이 들어가는 형태이고,
      배열포인터는 2차원 배열 형태라고 보시면 됩니다.
      감사합니다. ^^

  • @쿠루루-l9x
    @쿠루루-l9x 4 месяца назад +1

    두번째 예제에서 *in[1] 이 왜 3인거죠? 주솟값을 가르켜야하는 거 아닌가용 ㅠㅠ 헷갈리네요

  • @dongdong-n1h
    @dongdong-n1h 10 месяцев назад +1

    안녕하세요 4byte보고 3행 3열이라는 것을 알 수 있는 건가요??

  • @발차기-d3x
    @발차기-d3x Год назад

    안녕하세요. 흥달쌤! 질문있어요ㅠㅠ
    다중 for문에서 첫번째 for문 i=0; i

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~~
      이 문제의 형태는 다중 for 문이 아닙니다. ^^
      잘 보시면 for 에 중괄호가 없습니다.
      중괄호가 없을때는, 다음의 한 라인만 해당 for 문의 실행문이 됩니다.
      그러니깐 첫번째 for 문이 다 돌고, 탈출을 한 후,
      두번째 반복문이 실행되는 형태입니다.
      중괄호가 없어서 헷갈리셨나봐요..
      if, for, while 전부다 중괄호가 없다면 다음의 한 줄만 해당하는 제어문의 실행으로 보게 됩니다.
      감사합니다. ^^

    • @발차기-d3x
      @발차기-d3x Год назад

      맞네요!!!! 해결이 됐어요ㅠㅠㅠㅠ감사합니다

  • @내구글계정1번
    @내구글계정1번 3 месяца назад

    음 이건 60강까지 다 듣고 들어야지.....흡

  • @물하-h2s
    @물하-h2s 3 месяца назад

    다시 위쪽 for문으로 안올라 가나요?? ㅜㅜ

  • @min2341
    @min2341 Год назад

    이번건 좀 어려웠네요 malloc에 대한 개념을 모르는 상태로 보니까 더 헷갈렸습니다. 열심히 해서 익숙해져야겠네요!

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~
      malloc 은 오늘 영상으로 하나 올릴 예정인데요.
      그냥 동적으로 뭔가를 할당한다 이리 봐주시면 됩니다.
      감사합니다. ^^

  • @올바른운동
    @올바른운동 Год назад

    자바를 공부하고 c언어 강의 들으니까 휠씬 수월하게 이해되네요

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~
      자바나 C언어나 문법은 거의 비슷해서 도움이 많이 되실꺼에요~~
      C언어 포기하지 마시고 끝까지 함께해주세요~~
      완강 소식 기다리겠습니다.
      감사합니다. ^^

  • @ByeongGwonChoi
    @ByeongGwonChoi Год назад

    안녕하세요 마지막 서울시 문제에서 이해가 안 되는 부분이 있어서요
    in = (int (*)[N]) malloc~~~~
    out = (int *)in;
    요기에서 in은 형변환 하는거라고 다른분 댓글에 적어주셔서 그러려니 하는데 (사실 형변환 구문이 뭔지 몰라서 이것도 잘 모르겠습니다. 걍 그러려니...)
    out 쪽은 여전히 이해가 안되네요. 저게 포인터 배열인건가요? 그런데 왜 int * 사이에 괄호를 친 건지 모르겠네요.
    문제 처음 봤을 때 저게 뭔가 싶었어요. 이부분 설명 부탁드려요ㅠㅠㅠ

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~~
      out 은 단순히 1차원 배열의 형태입니다.
      ruclips.net/video/gW7ZA1P1HE8/видео.html
      요기 해설강의를 다시 찍어둔게 있는데 요걸 한번 참고해주세요~~
      감사합니다. ^^

  • @katelee1653
    @katelee1653 2 года назад +1

    for문 전에는 무슨말인지 당췌 모르겠네요. (*in)[N], int (*) [N]은 뭐고 (int *) in은 뭘까요... * 앞뒤로 너무 헤깔려요. ㅠㅠ

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      (*in)[N] 이건 배열 포인터라는 문법인데요...
      N 열로 재배치를 하라는 의미에요..ㅜㅜ
      이런 문법은 현업에서도 잘 안쓴다고 하는데 시험 내기는 좋은 문제라서 종종 출제가 되고 있습니다.
      제가 QA로 구성한게 있는데요..
      ruclips.net/video/nFipKeNb3MM/видео.html
      요 영상한번 참고 부탁드립니다.
      감사합니다. ^^

    • @katelee1653
      @katelee1653 2 года назад

      @@HeungSsaem 넵 잘 봤습니다. 링크 주신 내용은 이해가 가는데 이 내용은 다시봐도 이해가 안가네요..ㅎㅎ int (*) 와 int *랑 같은건가요?

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      @@katelee1653 아뇨...두개는 다른 개념입니다.
      int (*)[X] 요건 배열 포인터, int * 는 그냥 포인터가 되는거에요.^^
      배열포인터는 다시 재구성하는거 그냥 포인터는 주소값을 가지고 있는 변수 이렇게 생각해주셔야 할거 같아요..^^

    • @katelee1653
      @katelee1653 2 года назад

      @@HeungSsaem 아하~ 넵~ 알겠습니다. 이제 조금 이해 갑니다. ㅎㅎ 감사합니다. 강의 잘 듣고 있습니다!

  • @김멀티
    @김멀티 3 месяца назад

    8:40

  • @홍제섭-i8g
    @홍제섭-i8g Год назад +1

    쌤 안녕하세요! 아이디 정책 바뀌어서 기억 못하실 수도 있겠지만 다시 인사드려요 ㅎ 직장 다니고 있고, 쌤 덕에 필기 76점으로 합격해서 바로 엔잡 실기 인강도 끊고 깨알 C언어도 듣고 있는 제섭이에요~
    다름 아니라.. 사실 좀 무섭습니다. 지금까지 꾸역꾸역 인강 듣고 있지만, 사실 포인터 이후부터는 잘 이해가 안되요.. 많은 댓글들 보면 다 잘 가르쳐주셔서 감사드린다고, 이해가 쏙쏙 된다고 하는데 제가 아직 조금 부족한 것 같아요😂
    원래 엔잡 인강 쭉 들으면서 깨알 C언어 병행하면서 가려고했는데 3회차 실기 52일 남은 지금 시점 공부랑 권태기가 왔나봐요..
    엔잡 인강도 아예 안 듣고 있고, 쌤 깨알 C언어도 빨리 다 듣는게 목표라(돌려듣기 위해..) 그래도 내일도 이 깨알 C언어 재생목록을 우겨넣을 것 같긴해요..
    혼자 삭히느라 엄청 힘드네요😢
    따끔한 말도 괜찮아요!
    선생님, 할 수 있겠죠..?
    어떤 조언이라도 해주세요 자신감이 너무 떨어집니당..

    • @HeungSsaem
      @HeungSsaem  Год назад +1

      안녕하세요~~~
      아무래도 오랜시간 준비하다 보면 힘들지요.
      특히나 요즘은 덥기도 하고, 휴가기간하고 겹치다 보니 그럴 수 있어요.
      그래도 내가 하고자 마음을 먹었으니, 좀만 힘내주세요.
      내가 선택하지 않은 인생은 없잖아요~~
      내가 선택한거에 후회를 남기지 않기 위해서 지금 최선을 다해주시면 좋을 듯 합니다.
      그리고~~~~제가 NEW 프로그램특강을 촬영을 하고 있거든요.
      깨알 C언어 듣지 마시고 그걸 한번 들어주세요.
      제가 그동안 질문 받았던걸 좀 정리해서 조금 더 쉽게 설명을 드리고 있습니다.
      포인터 분명 어렵습니다.
      그래도 몇번 해보다 보면 충분히 맞추실 수 있을꺼에요...
      더운 날씨에 공부하시느라 많이 힘드시겠지만, 좀만 힘내셔서 꼭 합격 소식 전해주세요~~~
      하고자 하는 의지가 충만하면 실패가 결코 나를 굴복시킬 수 없습니다.
      오늘도, 내일도 화이팅입니다. ^^

  • @김영진-f1f2u
    @김영진-f1f2u 2 года назад +1

    *in 인 경우는 포인터 변수
    *in[]인 경우는 포인터 배열
    (*in)[]인 경우가 배열 포인터인거로 이해했는데 제가 이해한게 맞을까요?

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      넵...맞습니다.
      포인터 변수는 주소값을 담고,
      포인터 배열은 각각의 요소에 주소를 담고,
      배열 포인터는 2차원 형태로 재구성 한다고 보시면 됩니다.
      감사합니다. ^^

    • @김영진-f1f2u
      @김영진-f1f2u 2 года назад

      @@HeungSsaem 감사합니다 ㅎㅎ

  • @이름이없어-d3g
    @이름이없어-d3g 4 месяца назад

    패스

  • @김한수-t5n
    @김한수-t5n 2 года назад +2

    와.... 어렵네요. 이런문제는 안나왔으면 좋겠습니다. 그냥 훑어보고 넘어가고싶지만
    2개의 궁금증이 있습니다. 잘 적을수있을진 모르겠지만
    문제예시에서 in=(int(*)[N])은 그냥 이름없는? 배열포인터가 선언되는건가요? 이전 강의들을 듣고 제가 지금 알고있는 내용은 int *a [N] *뒤에 a라는 이름이 붙어야 된다고 알고있는데 그냥 (*)로도 가능 한건지 궁금합니다.
    2번째는 out[i] = i; 인데요 i가 증가할수록 out[0], out[1], out[2]가 될텐데 2차원배열이면 대표주소를 가리키는 뜻으로 저는 알고있는데 공간에 숫자들이 채워지는 이유가 궁금합니다. ㅎㅎ

    • @HeungSsaem
      @HeungSsaem  2 года назад +2

      (int(*)[N]) 요건 형변환에 관련된 내용입니다~~
      배열 포인터 형태로 변환하겠다는 의미이고, 3열짜리로 재구성한다는 의미라고 보면 될꺼 같습니다~~
      out은 2차원 배열은 아니고 포인터라고 봐주셔야 할꺼 같아요
      위에서 *out 으로 선언했기 때문에 그냥 단순 포인터로 보고, 단순 포인터는 1차원 배열형태이기 때문에 다음, 다음 이렇게 하면서 값이 순차적으로 들어가게 됩니다. ^^
      저 문제가 참 어렵지요..ㅜㅜ
      저건 4월에 프로그램 다른 문제 모아서 특강할때 다시 한번 다뤄보도록 하겠습니다. ^^

    • @김한수-t5n
      @김한수-t5n 2 года назад

      @@HeungSsaem 감사합니다 ㅎㅎ

  • @바타민
    @바타민 2 года назад

    한줄말고 2차원부터는 그냥 **이 원래값 말한다고 보면 되나요 ..? 아무것도 없거나 *이면 번지수 말하는거고

    • @HeungSsaem
      @HeungSsaem  2 года назад

      넵...2차원 배열에서는 ** 를 쓰게 되면 값의 값을 참조합니다.
      혹시 어려운 문제 있으면 댓글 남겨주세요.
      답변 해드릴께요..^^

  • @kwindow2
    @kwindow2 2 года назад +1

    이부분도 다 이해하고 다음 강좌로 넘어가야 하나요?

    • @HeungSsaem
      @HeungSsaem  2 года назад +2

      안녕하세요~~~
      배열 포인터 강좌는 제가 QA로도 만들어둔게 있거든요.
      ruclips.net/video/YicQlC1wwK4/видео.html
      요걸 한번 참조해주세요..
      정처기가 배열 포인터 문제를 가끔 내더라구요.
      그래서 이해를 해주셔야해요..
      감사합니다. ^^

  • @nicenicely9978
    @nicenicely9978 Год назад

    선생님, *(*in + 1))은 'in의 값의 다음공간의 값'이라고 이해하고 **(in + 1)은 'in의 다음 공간의 값의 값'이라고 이해하면 맞을까요?
    이건 C언어인데 자바랑 파이썬 SQL은 언제 하지 싶네요 ㅠㅠ
    그래도 선생님 설명은 항상 최고예요!
    그리고 선생님, out의 요소를 배치해주는 것에 대해 살짝 헷갈렸는데요.
    out이 in처럼 2차원 함수였다면 out[i] = i; 는 각 행의 첫 값들만 넣어주는 거였을텐데
    out을 처음 선언할 때 첨자를 따로 쓰지 않아서 2차원 배열이 아니기 때문에 out[i] = i; 으로 각 i의 값인 0~8을 out에 넣어줄 수 있었던 걸까요?

    • @HeungSsaem
      @HeungSsaem  Год назад +2

      안녕하세요~~~
      배열포인터는 2차원배열의 형태이기 때문에,
      (*in + 1) in의 값은 100번지이고, 여기에 1을 더하게 되면 101번지가 됩니다.
      101번지의 값인 2가 출력되 됩니다.
      in+1 은 현재 in 이 가리키는 첫번재 행 대표주소의 다음 행대표주소이고, 그 공간의 값은 104번지, 104번지의 값은 5가 됩니다.
      요게 참 헷갈리는 문제인데, 2차원 배열에 관련된 행 대표 주소를 이해해주셔야해요~~ㅜㅜ
      그리고 out 은 단순 1차원 포인터이고, 1차원 포인터는 1차원 배열과 같기 때문에 순차적으로 값을 할당하게 됩니다.
      1차원배열이나 2차원배열이나 물리적으로 연속된 공간이고,
      2차원 배열은 논리적으로 나뉘는 단위이기 때문에 1차원 배열 형태라고 보셔도 무방합니다.
      감사합니다. ^^

    • @nicenicely9978
      @nicenicely9978 Год назад

      @@HeungSsaem 자세히 설명해주셔서 감사합니다 선생님!

  • @바타민
    @바타민 2 года назад

    눈물나요 어려워요

    • @HeungSsaem
      @HeungSsaem  2 года назад

      이건 어려우셨군요..ㅜㅜ
      포인터는 좀 익숙해져야해요..
      포기하지 마시고 조금만 힘내주세요..^^

  • @바타민
    @바타민 2 года назад

    전처리 구문에서 N=3이라고 내가 선언한게 아니라 컴터가 한거라 걍 모든 N은 3으로 보면 되나요?

    • @HeungSsaem
      @HeungSsaem  2 года назад

      음..N은 전처리 구문에서 define 으로 3으로 선언되어 있어요~~
      화면에 한꺼번에 나오게 하려고 전처리 구문은 스치듯 설명드렸습니다. ^^
      감사합니다.

  • @akaps99
    @akaps99 2 года назад +3

    헉...너무 어렵네요..... 감사합니다!!!

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      이 부분은 정말 어려운데 나중에 특강할때 다른 형태로 다뤄볼께요..^^
      수강해주셔서 감사합니다 ^^

  • @날씨좋다-y8b
    @날씨좋다-y8b 2 года назад +1

    이런걸 대체 누가 만든건가요..

    • @HeungSsaem
      @HeungSsaem  2 года назад

      그러니깐요. 저 문제 저도 처음 봤을때 깜짝놀랐습니다.
      어디서 저런 개념을 가져온겐지. ㅎㅎ
      다음에 프로그램 특강할때 다시한번 다루도록 할께요~~
      감사합니다.

  • @그냥저냥-o2p
    @그냥저냥-o2p 2 года назад +2

    수강했습니다~ ^^

    • @HeungSsaem
      @HeungSsaem  2 года назад

      어제도 열공하셨군요..
      수고 하셨습니다. ^^

  • @상규-y7p
    @상규-y7p Год назад

    빵상...깨랑까랑....(*)[]......🫠

    • @HeungSsaem
      @HeungSsaem  Год назад

      안녕하세요~~
      깨랑까랑을 아시는군요~~^^
      저는 빵상이라는 단어가 상당히 익숙한데, 낯설어 하시는 분들이 많더라구요..
      나이가 들었다는 거지요~~에효~~^^

  • @jungjinlee9082
    @jungjinlee9082 2 года назад +1

    N은 왜 3이 되나요?

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      안녕하세요...
      위에 전처리 구문에서 매크로 변수로 N = 3 이다라고 선언을 하게 되면 모든 프로그램에서 N은 3으로 치환이 됩니다.
      그래서 N값은 3이 됩니다.~~
      도움이 되셨으면 좋겠습니다. ^^

  • @근성맨-i1t
    @근성맨-i1t 2 года назад

    나는 누구 여기는 어디..

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      배열 포인터 어렵지요?? ㅜㅜ
      배열 포인터는 QA에도 나와있으니 그것도 한번 참고해주세요~~^^

  • @CoolPiece882
    @CoolPiece882 2 года назад +1

    어우 이거 너무 어렵네요..

    • @HeungSsaem
      @HeungSsaem  2 года назад

      이 문제가 이번 2022년 1회 필기에서 나왔던 문제에요..
      배열 포인터...아주 난해한 개념이지요.ㅜㅜ
      다음에 특강 진행할때 변형을 살짝해서 다시 말씀드리도록 할께요~
      감사합니다. ^^

    • @jikim3443
      @jikim3443 2 года назад

      @@HeungSsaem 22년 1회 67번 문제 맞나요...? ㅠㅠ

    • @HeungSsaem
      @HeungSsaem  2 года назад

      @@jikim3443 거의 비슷한 문제지요..^^
      배열포인터..^^

  • @기럭공지
    @기럭공지 2 года назад

    감사합니다

    • @HeungSsaem
      @HeungSsaem  2 года назад

      시청해 주셔서 감사드립니다.

  • @sszxjj23
    @sszxjj23 2 года назад +1

    36특강 수업 완료,

    • @HeungSsaem
      @HeungSsaem  2 года назад

      와. 많이 오셨네요.
      이제 얼마 남지 않았습니다. ^^

  • @Teighborhood
    @Teighborhood 2 года назад

    출제자분들 너무하네요........

    • @HeungSsaem
      @HeungSsaem  2 года назад

      요런 문제가 처음 나왔을때는 당황스러웠는데,
      앞으로는 종종 나올꺼에요..
      저런 문법은 사용하진 않지만, 문제내기는 좋거든요..
      꼭 이해해주세요..
      영상답변으로도 비슷한걸 만들었으니 이해가 안가시면 그걸 참고해봐주세요..
      감사합니다. ^^

  • @MayBePUPPY
    @MayBePUPPY 2 года назад

    와 진짜 어렵네요..

    • @MayBePUPPY
      @MayBePUPPY 2 года назад

      너무 어렵당😃😃

    • @MayBePUPPY
      @MayBePUPPY 2 года назад

      정처기 실기에도 프로그래밍이 이런 수준으로 나올까요? 사실 저번 2022년도 2회 실기때 저는 너무 어려웠거든요 2021년도 2, 3차랑 2022 1차랑은 비교도 안될 수준으로요 멘붕 그 자체였어요😶😶

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      배열 포인터 문제는 처음 보면 어려운데, 개념만 이해하고 익숙해지면 어렵지 않을꺼에요..
      배열포인터 문제 QA로 구성한 것들이 많으니깐 배열 포인터와 2차원배열에서 행대표주소를 꼭 풀어보고 시험 봐주세요~~^^

  • @dpfl7379
    @dpfl7379 2 года назад

    울고싶어요 ...............

    • @HeungSsaem
      @HeungSsaem  2 года назад

      안녕하세요~~
      포인터 들어가고 하니깐 좀 어렵지요..ㅜㅜ
      그래도 조금만 힘내서 들어주세요.
      익숙해지면 포인터도 쉽게 푸실 수 있을꺼에요.
      화이팅입니다.

    • @dpfl7379
      @dpfl7379 2 года назад

      감사합니다 쌤!!!!!!!

  • @rosie6030
    @rosie6030 2 года назад

    정처기에 이런 문제도 나오나요/?

    • @HeungSsaem
      @HeungSsaem  2 года назад +1

      넵. 배열포인터 문제가 이거하고 비슷하게 출제되었는데. 변형문제 나올꺼에요. ^^

  • @user-sogu73jdnv
    @user-sogu73jdnv Год назад

    이걸 엿 먹이는 문제라고 생각하다니... 일련의 배열구조를 재구성하여 2차원 배열구조로 논리적으로 만드는 것은 그것이 그대로 실무에 쓰이지는 않겠지만, 저런 사고를 할 수 있는 건 중요한 것 아닐까요.