【发布时间】:2015-05-08 20:47:28
【问题描述】:
这是我的计划的一部分。 parameters.path 是一个字符串,其中包含我将使用的文件的路径,但这不在此代码中。
typedef struct directory {
char *name;
char *path;
} directory;
void insertDir(directory*** array , char * path, char* name, int* length) {
directory *p = malloc(sizeof(directory));
p->path = malloc(strlen(path)+ 1);
strcpy(p->path, path);
p->name = malloc(strlen(name)+ 1);
strcpy(p->name, name);
*array = (directory**) realloc( *array , (*length) * (sizeof(directory*)));
*array[(*length)] = p;
(*length)++;
}
int main(int argc , char** argv) {
directory** array = NULL;
int lenght = 0;
while(true) {
insertDir(&array, parameters.path, name , &lenght);
}
return 0;
}
它在第三个realloc 上失败,出现分段错误。你能帮帮我吗?
【问题讨论】:
-
你不应该在 C 中从 malloc/realloc/calloc 中键入 cast return。早点养成习惯!