Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 使用malloc在排序名称时不断获取seg错误_Sorting_Segmentation Fault_Malloc - Fatal编程技术网

Sorting 使用malloc在排序名称时不断获取seg错误

Sorting 使用malloc在排序名称时不断获取seg错误,sorting,segmentation-fault,malloc,Sorting,Segmentation Fault,Malloc,我假设读取一个文件,然后以字母排序的数组写入该文件。然而,我使用gdb不断得到一个分段错误,这表明我的显示和排序功能出现分段错误 编辑:我通过使用宏来分配内存来修复它。 由于这是一项任务,我不想透露它只是以防万一。我非常感谢大家对我代码的帮助 你应该这么做吗?哎哟 我也有一个错误,但在read_names()中。我可以用一个简单的scanf()替换所有strtok()内容来修复它: 编辑2: 好的,发现另一个故障。什么是“num”?它似乎被解释为文件中名称的数量和每个名称的大小 // alloc

我假设读取一个文件,然后以字母排序的数组写入该文件。然而,我使用gdb不断得到一个分段错误,这表明我的显示和排序功能出现分段错误

编辑:我通过使用宏来分配内存来修复它。
由于这是一项任务,我不想透露它只是以防万一。我非常感谢大家对我代码的帮助

你应该这么做吗?哎哟

我也有一个错误,但在read_names()中。我可以用一个简单的scanf()替换所有strtok()内容来修复它:

编辑2:

好的,发现另一个故障。什么是“num”?它似乎被解释为文件中名称的数量和每个名称的大小

// allocate "num" first name elements -> implied "num" is # of names
f=(char**)malloc (num*sizeof(char*));

// allocate space for each name... but uses the value of "num" for each name
for (i=0; i<num;i++)
    f[i]=(char*)malloc (num*sizeof(char));  // "num" bytes per name?
//分配“num”名字元素->隐含的“num”是名称的#
f=(char**)malloc(num*sizeof(char*);
//为每个名称分配空间。。。但对每个名称使用“num”值

对于(i=0;我能让你对注释更慷慨一点吗?当你这么做的时候,缩进?谢谢。你能提供一个用符号编译的二进制文件的核心转储吗?把在gdb中运行bt的输出添加到这个问题上。我修正了它。我不想使用num,我想对循环中的那些文件使用宏。谢谢大家的input、 我很感激。
2 bill smith a doug adams r
// allocate "num" first name elements -> implied "num" is # of names
f=(char**)malloc (num*sizeof(char*));

// allocate space for each name... but uses the value of "num" for each name
for (i=0; i<num;i++)
    f[i]=(char*)malloc (num*sizeof(char));  // "num" bytes per name?