<div style="border:1px solid rgb(0,0,128);color:rgb(0,0,0);font-family:Consolas, 'Courier New', Courier, Monospace;font-size:10pt;"> <div style="background:rgb(0,0,128);padding:2px 5px;color:rgb(255,255,255);font-family:Verdana, Tahoma, Arial, sans-serif;font-weight:bold;">Code Snippet</div> <div style="background:rgb(12,12,12);color:rgb(220,220,220);overflow:auto;max-height:300px;"> <ol style="background:rgb(0,0,0);margin:0px 0px 0px 3em;padding:0px;" start="1"><li><span style="color:rgb(155,155,155);">#include</span><span style="color:rgb(214,157,133);"><stdio.h></span></li> <li style="background:rgb(12,12,12);"><span style="color:rgb(155,155,155);">#include</span><span style="color:rgb(214,157,133);"><stdlib.h></span></li> <li> </li> <li style="background:rgb(12,12,12);"><span style="color:rgb(86,156,214);">int</span> <span style="color:rgb(200,200,200);">main</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(86,156,214);">void</span><span style="color:rgb(180,180,180);">)</span></li> <li>{</li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(86,156,214);">char</span> <span style="color:rgb(180,180,180);">*</span><span style="color:rgb(200,200,200);">ar</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">];</span></li> <li> <span style="color:rgb(86,156,214);">char</span> <span style="color:rgb(180,180,180);">*</span><span style="color:rgb(200,200,200);">arr</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">]</span> <span style="color:rgb(180,180,180);">=</span> { <span style="color:rgb(214,157,133);">"AAA"</span> <span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(214,157,133);">"BBBB"</span> <span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(214,157,133);">"CCCCC"</span> }<span style="color:rgb(180,180,180);">;</span></li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(86,156,214);">char</span> <span style="color:rgb(200,200,200);">arrr</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">][</span><span style="color:rgb(181,206,168);">20</span><span style="color:rgb(180,180,180);">]</span> <span style="color:rgb(180,180,180);">=</span> { <span style="color:rgb(214,157,133);">"AAA"</span><span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(214,157,133);">"BBBB"</span><span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(214,157,133);">"CCCCC"</span> }<span style="color:rgb(180,180,180);">;</span></li> <li> </li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(86,156,214);">int</span> <span style="color:rgb(200,200,200);">num</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">];</span></li> <li> <span style="color:rgb(86,156,214);">int</span> <span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">;</span></li> <li style="background:rgb(12,12,12);"> </li> <li> <span style="color:rgb(86,156,214);">for</span> <span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">i</span> <span style="color:rgb(180,180,180);">=</span> <span style="color:rgb(181,206,168);">0</span><span style="color:rgb(180,180,180);">;</span> <span style="color:rgb(200,200,200);">i</span> <span style="color:rgb(180,180,180);"><</span> <span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">;</span> <span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">++)</span></li> <li style="background:rgb(12,12,12);"> {</li> <li> <span style="color:rgb(200,200,200);">scanf</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(214,157,133);">"%d"</span><span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(180,180,180);">&</span><span style="color:rgb(200,200,200);">num</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]);</span></li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(200,200,200);">ar</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]</span> <span style="color:rgb(180,180,180);">=</span> <span style="color:rgb(180,180,180);">(</span><span style="color:rgb(86,156,214);">char</span> <span style="color:rgb(180,180,180);">*)</span><span style="color:rgb(200,200,200);">malloc</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">num</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]</span> <span style="color:rgb(180,180,180);">*</span> <span style="color:rgb(86,156,214);">sizeof</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(86,156,214);">char</span><span style="color:rgb(180,180,180);">));</span></li> <li><span style="color:rgb(87,166,74);">// memset(ar[i],'%', num[i]);</span></li> <li style="background:rgb(12,12,12);"><span style="color:rgb(87,166,74);">// printf("%c\n", ar[i][0]);</span></li> <li> }</li> <li style="background:rgb(12,12,12);"> </li> <li> <span style="color:rgb(86,156,214);">for</span> <span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">i</span> <span style="color:rgb(180,180,180);">=</span> <span style="color:rgb(181,206,168);">0</span><span style="color:rgb(180,180,180);">;</span> <span style="color:rgb(200,200,200);">i</span> <span style="color:rgb(180,180,180);"><</span> <span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">;</span> <span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">++)</span></li> <li style="background:rgb(12,12,12);"> {</li> <li> <span style="color:rgb(200,200,200);">printf</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(214,157,133);">"%d \n"</span><span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(86,156,214);">sizeof</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">ar</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]));</span></li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(200,200,200);">printf</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(214,157,133);">"%d \n"</span><span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(86,156,214);">sizeof</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">arr</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]));</span></li> <li> <span style="color:rgb(200,200,200);">printf</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(214,157,133);">"%d \n\n"</span><span style="color:rgb(180,180,180);">,</span> <span style="color:rgb(86,156,214);">sizeof</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">arrr</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]));</span></li> <li style="background:rgb(12,12,12);"> }</li> <li> </li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(86,156,214);">for</span> <span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">i</span> <span style="color:rgb(180,180,180);">=</span> <span style="color:rgb(181,206,168);">0</span><span style="color:rgb(180,180,180);">;</span> <span style="color:rgb(200,200,200);">i</span> <span style="color:rgb(180,180,180);"><</span> <span style="color:rgb(181,206,168);">3</span><span style="color:rgb(180,180,180);">;</span> <span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">++)</span></li> <li> {</li> <li style="background:rgb(12,12,12);"> <span style="color:rgb(200,200,200);">free</span><span style="color:rgb(180,180,180);">(</span><span style="color:rgb(200,200,200);">ar</span><span style="color:rgb(180,180,180);">[</span><span style="color:rgb(200,200,200);">i</span><span style="color:rgb(180,180,180);">]);</span></li> <li> }</li> <li style="background:rgb(12,12,12);"> </li> <li>}</li></ol></div></div> <div> </div> <div> </div> <div>재가 작성한 코드입니다.</div> <div> </div> <div>입력을 통해 num배열에 숫자를 저장하고</div> <div> </div> <div>malloc을 통해서 문자열배열 ar에 필요한 만큼의 메모리를 할당하고</div> <div> </div> <div>할당된 메모리 크기를 sizeof를 통해서 출력하는 프로그램인데</div> <div> </div> <div>동적 메모리 할당한 *ar과 문자형 포인터배열(문자열 배열)인 *arr은 4가 출력되고(아마 포인터 크기를 반환한듯합니다.)</div> <div> </div> <div>문자형 2차원 배열인 arrr만이 배열의 크기인 10을 반환합니다.</div> <div> </div> <div>sizeof에 인수로 포인터를 전달했다고 4를 반환한거라면</div> <div> </div> <div>배열의 이름도 포인터임에도 불구하고 sizeof에 인수로 넣을경우 왜 포인터 크기인 4가아닌 배열의 크기가 출력되는건지...</div> <div> </div> <div>인터넷에서는 '배열의 이름은 포인터다.'라고 표현한건 동작이 비슷하기 때문에</div> <div> </div> <div>이해하기 쉽게 그렇게 알려주는거지 실제 내용은 너무 어려워서 그냥 "똑같다"라고 표현하는 책이 많아서 그런거라는 말이 있네요...</div> <div> </div> <div> </div> <div> </div> <div>즉, 엄밀히 말하자면 </div> <div> </div> <div>"배열의 이름은 포인터처럼 사용할 수 있지만 포인터는 아니다" 가 되는건데...</div> <div> </div> <div> </div> <div> </div> <div>여기 까지 오니 머릿속으로 차곡차곡 쌓아놓은 지식들이 뭔가 위태위태 해지는 느낌이......</div> <div> </div> <div>왜 출력값이 달라지는건지 쉬원하게 설명좀 해주세요 ㅠㅠ</div>
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.