【发布时间】:2011-12-07 03:04:16
【问题描述】:
我在使用 C 语言的 opendir 函数时遇到问题。代码如下:
rvm的声明:
rvm_t func()
{
rvmBlock=(rvm_t)malloc(sizeof(rvm_t));
return rvmBlock;
}
rvm_t rvm;
rvm=func();
printf("rvm->backingStore=%s\n", rvm->backingStore);
if( (dir = opendir(rvm->backingStore)) !=NULL )
{
printf("rvm->backingStore inside if=%s\n", rvm->backingStore);
}
我得到的输出是:
rvm->backingStore=rvm_segments/
rvm->backingStore inside if=rvm_segments!?
"!?" 是一些由于某种原因出现的垃圾字符。
谁能解释一下出了什么问题。
这是rvm结构:
struct rvm_info
{
char backingStore[20];
struct memSeg * memSegs[20];
long int storage_size;
int memSeg_count;
FILE * log_fd;
};
typedef struct rvm_info* rvm_t;
【问题讨论】:
-
显示
rvm的声明,它可能指向一个无效的位置。我希望你不要在没有为其分配内存的情况下执行rvm_t rvm;,因为rvm_t的类型是rvm_info*。 -
这不是
rvm的声明,告诉我们你在哪里有类似的东西:rvm_t rvm ...。 -
@AusCBloke 我刚刚添加了它