如果我创建一个一定大小的字符指针数组,例如:
char* temp[10];
//need intialisation here..
temp[0] = "BLAH";
temp[1] = "BLAH";
temp[3] = "BLAH";
.
.
.
temp[9] = "BLAH";
//Need reinitialise..
temp[10] = "BLAH";
temp[11] = "BLAH";
我该如何初始化它?
一段时间后如何用大小 20 重新初始化它?
malloc()
这样做有用吗calloc()
?如果是,那么如何使用指向字符的指针数组?
[编辑]
我的代码和要求,基本上我想用c读取文件但不浪费单个字符......这是从文本文件中读取数据的代码,
FILE *ptr_file;
/* Allocate space for ten strings */
/* Allocate space for ten strings */
char** list = (char **)malloc(10 * sizeof(char));
/* Reallocate so there's now space for 20 strings */
/* And initialize the new entries */
ptr_file =fopen(LogFileCharName,"rb");
if (!ptr_file)
return 1;
int __index = 0;
wchar_t CurrentString[1000];
while(fgetws (CurrentString , 1000 , ptr_file) != NULL)
{
char* errorDes;
errorDes = new char[1000];
wcstombs(errorDes, CurrentString, 1000);
list[__index] = errorDes;
if( __index>10)
{
(char**)realloc(list, 20 * sizeof(char *));
}
__index++;
}
现在当大小超过 10 时,只需要调整大小即可。为此,我使用的是 Microsoft Visual Studio 的 Win32 控制台应用程序类型。