Re: [問題] 雙重指標的問題

看板C_and_CPP作者 (艾斯寇德)時間14年前 (2009/12/20 02:14), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
: #include <stdio.h> : int main(void) : { : char **ptr; : int n,m; : char *temp; : char *string1="BOOK"; : char *string2="FOR"; : char *string3="YOU"; : ptr=&temp; ptr得到了temp的堆疊位置 : *(ptr+0) = string1; : *(ptr+1) = string2; : *(ptr+2) = string3; 以上三行嘗試竄改堆疊的內容 也就是期待使得 temp = "BOOK" string1 = "FOR" string2 = "YOU" 假使這些變數在宣告的時候沒有碰到程式碼重新排列的問題 (如inlined function invocation加上optimize使得實際上堆疊的順序有變) 則可以以ptr相對位置來存取 : printf("\n ptr 的位址 = %p\n", ptr); : for (n=0;n<3;n++) : { : printf("\n *(ptr+%d) 所存的位址 = %p\n",n,*(ptr+n)); : printf("*(ptr+%d) 指向字串 %s\n",n,*(ptr+n)); : for (m=0; *(*(ptr+n)+m) != '\0';m++) : printf("*(*(ptr+%d)+%d)=%c \n",n,m,*(*(ptr+n)+m)); : } : return 0; : } : 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.84.133

12/20 02:40, , 1F
感謝回答
12/20 02:40, 1F
文章代碼(AID): #1BBHW8qD (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BBHW8qD (C_and_CPP)