剛剛在指導學長使用雙重指標,將心得分享上來
如果今天已經預先將值放在程式碼內,而不用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唷!
但是對初學者來說會糊里糊塗的,不知道自己在讀什麼值
有任何不好的地方歡迎高手指教謝謝