2차원배열 포인터 질문 좀..

min2to의 이미지

포인터 좀 자세히 알려고자 질문 좀 드릴꼐여~;;

#include

main ()
{

int ttt[3][2] = {{6,3}, {5, 9} , {8, 2}};
int (*ppp)[2] = ttt;

printf("ppp+0값 %d\n", ppp + 0);
printf("ppp+1값 %d\n", ppp + 1);
printf("ppp+2값 %d\n", ppp + 2);

printf("*(ppp + 0)값 %d\n", *(ppp + 0));
printf("*(ppp + 1)값 %d\n", *(ppp + 1));
printf("*(ppp + 2)값 %d\n", *(ppp + 2));
}

ppp+0값 -1073747184
ppp+1값 -1073747176
ppp+2값 -1073747168
*(ppp + 0)값 -1073747184
*(ppp + 1)값 -1073747176
*(ppp + 2)값 -1073747168

이런식의 답이 나오더군여 이해는 했는데 여기에다가 sizeof 연산자를 대입해보니..

444
888
이 나오더군여 왜 주소값은 같은데 sizeof값은 다른지.. 이해가 않가네여

책에선
ppp +0은 단지 ppp가 가르키는 곳에서 0번쨰 떨어진 곳의 주소를 뜻하고 있다.
ppp가 행단위로 움직이기 떄문에 혹시 9 이라고 착각하지않도록 조심해야한다.
*(ppp +0)은 ppp에서 0번쨰 떨어진 대상체를 뜻하므로 8이라는 수치가 출력된다.

이렇게 설명을 해준던데

도저히 무슨말인지 .... 풀이 좀 부탁드립니다 ㅠ.ㅠ..

kane의 이미지

코드도 찌그러져 보이고, main의 리턴 값도 없고, 포인터도 %p로 안찍고... :twisted: 뭐, 어쨌든

sizeof는 말 그대로 대상의 크기를 알려주죠. ppp+0은 포인터니까 4. *(ppp+0)은 int 두개짜리 배열이니까 8.

책에 나온 말은 해석불가네요. ppp는 포인터고, *ppp는 int 배열이므로 **ppp가 6이 되겠군요.

min2to의 이미지

흠.. "다시 체계적으로 배우는 포인터" 에서 똑같이 썻는데여 ..

다만 틀린게 있다면 %d로 다 봐꿨다는거 이상하게 적혀 있어서

감사해여.. 그냥 점찍힌 수대로 이해하면 되겟군여..;;;;;;;

모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다

min2to의 이미지

모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다

상관없지만 이 책 자체가 오타가 많타네여.. 홈페이지가서 오타 찾아볼려고

hwp 파일이라 못열어 보고 있네여 흠..

모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다

mirr의 이미지

아님 포인터 ppp와 이중포인터 ppp의 사이즈가 궁금하신건가요?
포인터의 자료형에 따른 메모리 할당량(크기)를 찾아보세요.

내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.

내 마음속의 악마가 자꾸만 나를 부추겨.
늘 해왔던 것에 만족하지 말고 뭔가 불가능해 보이는 것을 하라고 말야.

min2to의 이미지

모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다

이제 공부 좀 많이많이 하고 질문하야되겟네여..

다시보니.. 멍청한 질문을한듯.. 감사합니다;~~

printf("ppp+0값 %d\n", sizeof(ppp + 0));

printf("*(ppp + 2)값 %d\n", sizeof(*(ppp + 0)));

위에꺼는 0번쨰값을 가르켜 4고
밑에꺼는 한행을 가르켜서 8이고..

모르는건 물어보라구 엄마 아빠가 알려주셧습니다
고수님,선배님들 도와주십쇼 독학하는 학생입니다

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.