我正在尝试在 Ubuntu 中打开相对路径,但是在打开第一个文件夹(称为14
)后,代码无法打开里面的文件夹(称为15
:
int pathsCtr; // number of folders in RelativeArray
char ** RelativeArray; // the folders in the relative path, currently:
RelativeArray[0] = "14";
RelativeArray[1] = "15";
// some code before
if (pathsCtr > 0 && flag == TRUE) // then we have a relative path
{
int j = 0;
while (j < pathsCtr) // run until the last path and open every one
{
printf("\n%s\n" , RelativeArray[j]);
dirp = opendir(RelativeArray[j]); // open all directories until the last one
if (dirp == NULL)
return -1;
j++; // proceed to the next directory
}
flag = FALSE; // turn off the flag , we'll never go near this again
}
当j == 0
这条线:dirp = opendir(RelativeArray[j]);
有效而dirp
无效时NULL
。
但是当j == 1
那条线dirp = opendir(RelativeArray[j]);
失败并且dirp
是NULL
.
我究竟做错了什么?
编辑:
假设我在RelativeArray
上面的代码之前做 malloc 。