[分享] 雙重指標小應用
剛剛在指導學長使用雙重指標,將心得分享上來
如果今天已經預先將值放在程式碼內,而不用fopen去讀檔該怎麼做
#include<stdlib.h>
#include<stdio.h>
//預先放置之副程式
void source(int **s){
*(*(s+0)+0) = 0;
*(*(s+0)+1) = 1;
*(*(s+1)+0) = 2;
*(*(s+1)+1) = 3;
}
int main(){
int **f;
int i,j;
//要先配置喔!
f = (int **)malloc(sizeof(*f)*2);
for(i=0;i<2;i++){
*(f+i) = (int *)malloc(sizeof(*f)*2);
}
//從副程式取值
source(f);
for(i=0;i<2;i++){
for(j=0;j<2;j++)
printf("%d ",*(*(f+i)+j));
printf("\n");
}
/*指標用完記得free啊!!指標用完記得free啊!!指標用完記得free啊!!
很重要,所以說三次(13誡之六)*/
for(i=0;i<2;i++)
free(*(f+i));
free(f);
system("pause");
return 0;
}
這方法好處是免用迴圈一直在讀值,而且可以解決有些編譯器沒辦法用fopen
像做嵌入式系統設計就不一定有fopen唷!
但是對初學者來說會糊里糊塗的,不知道自己在讀什麼值
有任何不好的地方歡迎高手指教謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.136.146.114
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1417526139.A.F30.html
※ 編輯: jacky1989 (140.136.146.114), 12/02/2014 21:17:06
※ 編輯: jacky1989 (140.136.146.114), 12/02/2014 21:20:35
→
12/02 21:32, , 1F
12/02 21:32, 1F
不是每個初學者都懂呀!!
推
12/02 22:28, , 2F
12/02 22:28, 2F
→
12/02 22:29, , 3F
12/02 22:29, 3F
→
12/02 22:29, , 4F
12/02 22:29, 4F
※ 編輯: jacky1989 (118.233.78.140), 12/02/2014 22:48:09
※ 編輯: jacky1989 (118.233.78.140), 12/02/2014 22:48:39
→
12/02 22:51, , 5F
12/02 22:51, 5F
那我小聲回答
如果是int source(int index)這種狀況就要
在主程式內用
for(i=0;i<2;i++){
for(j=0;j<2;j++){
*(*(f+i)+j) = source(i*2+j);
}
}
但是這比較常見在初學者
※ 編輯: jacky1989 (118.233.78.140), 12/02/2014 22:55:23
→
12/02 23:03, , 6F
12/02 23:03, 6F
→
12/02 23:04, , 7F
12/02 23:04, 7F
如果今天所需要的陣列大小是256*256
值是沒有規律性的
也可以直接用二維陣列來完成嗎?
※ 編輯: jacky1989 (118.233.78.140), 12/02/2014 23:39:38
推
12/02 23:44, , 8F
12/02 23:44, 8F
但是上次我用200*200的陣列在執行時就已經出問題了耶
※ 編輯: jacky1989 (118.233.78.140), 12/02/2014 23:46:40
推
12/02 23:49, , 9F
12/02 23:49, 9F
全域變數可以解決200*200會錯的問題???
※ 編輯: jacky1989 (118.233.78.140), 12/02/2014 23:52:11
→
12/03 00:08, , 10F
12/03 00:08, 10F
→
12/03 00:10, , 11F
12/03 00:10, 11F
→
12/03 00:12, , 12F
12/03 00:12, 12F
→
12/03 00:12, , 13F
12/03 00:12, 13F
原來是這樣,感謝指導,已筆記
→
12/03 00:22, , 14F
12/03 00:22, 14F
是嗎??很多人都說雙重指標啊!!
※ 編輯: jacky1989 (118.233.78.140), 12/03/2014 00:23:50
→
12/03 00:27, , 15F
12/03 00:27, 15F
→
12/03 00:28, , 16F
12/03 00:28, 16F
那請教**p該如何稱呼??
※ 編輯: jacky1989 (118.233.78.140), 12/03/2014 00:31:02
→
12/03 00:31, , 17F
12/03 00:31, 17F
中文= =,難道要講指標對指標嗎?
※ 編輯: jacky1989 (118.233.78.140), 12/03/2014 00:32:39
→
12/03 00:34, , 18F
12/03 00:34, 18F
以前老師一樣是教雙重指標
就這樣沿用吧!!兩種都有人講
※ 編輯: jacky1989 (118.233.78.140), 12/03/2014 00:37:00
→
12/03 00:44, , 19F
12/03 00:44, 19F
推
12/03 01:08, , 20F
12/03 01:08, 20F
→
12/03 01:18, , 21F
12/03 01:18, 21F
→
12/03 01:19, , 22F
12/03 01:19, 22F
→
12/03 01:19, , 23F
12/03 01:19, 23F
→
12/03 01:19, , 24F
12/03 01:19, 24F
→
12/03 03:10, , 25F
12/03 03:10, 25F
→
12/03 03:13, , 26F
12/03 03:13, 26F
→
12/03 03:13, , 27F
12/03 03:13, 27F
→
12/03 03:14, , 28F
12/03 03:14, 28F
→
12/03 03:14, , 29F
12/03 03:14, 29F
→
12/03 05:04, , 30F
12/03 05:04, 30F
→
12/03 05:05, , 31F
12/03 05:05, 31F
推
12/03 18:02, , 32F
12/03 18:02, 32F
→
12/03 18:02, , 33F
12/03 18:02, 33F
→
12/03 18:03, , 34F
12/03 18:03, 34F
→
12/03 18:10, , 35F
12/03 18:10, 35F
→
12/03 18:31, , 36F
12/03 18:31, 36F
→
12/03 18:34, , 37F
12/03 18:34, 37F
推
12/04 08:20, , 38F
12/04 08:20, 38F
推
12/04 11:30, , 39F
12/04 11:30, 39F
→
12/04 19:38, , 40F
12/04 19:38, 40F
哪邊換double??
※ 編輯: jacky1989 (118.233.78.140), 12/04/2014 23:44:17
→
12/05 02:18, , 41F
12/05 02:18, 41F
→
12/05 02:18, , 42F
12/05 02:18, 42F
→
12/05 02:43, , 43F
12/05 02:43, 43F
→
12/05 02:43, , 44F
12/05 02:43, 44F
推
12/08 00:45, , 45F
12/08 00:45, 45F