char *[] 数组 问题?
我想定义一个char*[] 数组,代码如下
char **filename=new char*[10];
for(int i=0;i<10;i++)
char temp[80];
_snprintf(temp,79,"aa%d.dat",i);
temp[79]=0;
char *path=NULL;
path=(char*)temp;
*(filename+i)=path;
}
for(int j=0;j<10;j++)
{
FILE *File=fopen(filename[pathindex],"rb+");
}
我得到的 filename 数组中,每个值都是一样的。。。。。该如何修改?大侠
[解决办法]
#define MAX_PATH 255
const int g_nFileCount = 10;
int _tmain(int argc, _TCHAR* argv[])
{
char *pFileName[g_nFileCount];
for (int i=0; i<g_nFileCount; ++i)
{
pFileName[i] = new char[MAX_PATH];
}
for(int i=0;i<g_nFileCount;i++)
{
sprintf_s(pFileName[i], MAX_PATH, "aa%d.dat", i);
}
for (int i=0; i<g_nFileCount; ++i)
{
printf("%s\n", pFileName[i]);
}
for (int i=0; i<g_nFileCount; ++i)
{
delete pFileName[i];
pFileName[i] = NULL;
}
}
[解决办法]
lz似乎搞的有点麻烦喽
char **filename=new char*[10];
for(int i=0;i<10;i++)
{
filename[i] = new char[80];
_snprintf(filename[i],79,"aa%d.dat",i);
}
记得释放内存(delete)