嘿,所有,我是一個指針新手,並在下面的代碼中,我試圖將2 D數組的值存儲在結構中,然後將其打印出來。但是,我得到一個編譯錯誤在線:f d->mychar[i] = newptr[i];
我得到,雖然char * str
是str[]
,char ** str
相同str[][]
相同,但我無法找到一個解決方案,使下面的工作。二維數組和指針
typedef struct mystruct{
char mychar [20][20];
}mystruct_t;
void printvalues (char ** newptr){
int i;
mystruct_t * fd;
for (i=0;i<3;i++){
fd->mychar[i] = newptr[i];
printf("My value is %s and in struct %s\n", newptr[i], fd->mychar[i]);
}
}
int main (int argc, char **argv){
int i;
char * abc[5] = {"123", "456", "789"};
for (i=0;i<3;i++){
printf("My value is %s\n", abc[i]);
}
printvalues(abc);
}
必須閱讀:http://c-faq.com/aryptr/index.html。 – 2011-05-24 17:02:42