简单的说指针数组就是二维数组,因而对于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);将会出错。
申请内存空间: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);将会出错。