指針數組的操作

簡單的說指針數組就是二維數組,因而對於char **file,*(file+index)與file[index]是等同的。現在假如要對file[index]的某個字符進行操作,即*(file[index]+i)='/0';也可以寫成*(*(file+index)+i)='/0'.但是前者較爲直觀,而且操作簡單。所以最好用前者。
申請內存空間:file=(char **)malloc(256*sizeof(char **));
                            if(!(index%256)){
                                file=(char **)realloc(file,(index+256)*sizeof(char **));
                                }
釋放內存空間:while(array[i++])free(array[i-1]);
                              free(array);
                   或者:    while(*(array+i)){
                                    free(*(array+i));
                                    i++;
                                    }
                                    free(array);
注意不要用while(*array){
                         free(*array);
                         array++
                   }
                   free(array);
這樣將會改變array的值。那麼free(array);將會出錯。
發佈了25 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章