冒泡排序不适用于动态分配的字符串数组

时间:2015-04-09 12:14:54

标签: c arrays string sorting dynamic

我在数组中创建了一个动态分配的字符串数组,其中有1280个字符串,我正在尝试使用冒泡排序对其进行排序。 Max是1280.我在使用bubbleSort函数时遇到了麻烦,因为它一直给我一个分段错误:11。

   char** f = calloc(max, sizeof(char*));
    for(i = 0; i < row; i++)
    {
        f[i] = malloc(349);
    }

    i = 0;
    while(i < max)
    {
        strtok(d[i], del);
        strtok(NULL, del);
        strtok(NULL, del);      
        f[i] = strtok(NULL, del);
        i++;
    }

    for(i = 0; i < 50; i++)
    {   
        printf("%s\n", f[i]);
    }
    printf("\n\n");
    bubbleSort(&f[max], max);
}

void bubbleSort(char *d[], int length)
{
    int i, unsorted;
    char* temp;

    do {
        unsorted = 0;

        for(i = 0; i < length-1; i++)
            if( strcmp(d[i], d[i+1]) > 0 )
            {
                temp = d[i];
                d[i] = d[i+1];
                d[i+1] = temp;
                unsorted = 1;
            }

0 个答案:

没有答案