如何在c中对数组进行子集化?

时间:2018-07-22 13:29:03

标签: c

我正在尝试在C中实现递归合并排序,以对ARGV中stdin的输入进行排序。为此,我需要创建新的数组,这些数组是ARGV数组的子集的副本。我需要副本,因为接下来我将使用它们来修改原始数组,而我无法就地执行。

void pm_merge(char **A, int p, int q, int r)
{
    char **L;
    char **R; 
    int i;

    L = malloc(sizeof(char*) * pm_stringlen(A) + 1);

    i = 0;
    while (i <= q)
        strncpy(L[i], A[i], pm_stringlen(A[i]));
}

void pm_mergesort(char **A, int p, int r)
{
    int q;
    if (p < r) 
    {
        q = (p + r) / 2;
        pm_mergesort(A, p, q);
        pm_mergesort(A, q + 1, r);
        pm_merge(A, p, q, r);
    }
}

我包括了pm_mergesort()作为上下文,但真正的问题在于pm_merge()函数。谁能帮我吗?该代码尽管可以编译,但给了我一个设置错误。

0 个答案:

没有答案