我有一个二维数组,我必须合并所有他的列是渐进的。我已经将数组拆分成swap[]了,但是当我试图将swap[]放入排序的序列中时,得到了“违规调用”。我在用指针,我想这就是问题所在。有人能帮忙吗?

void MergeSequence(float seq[], float newSeq[], int *seqIndex, int newSeqIndex)
{
    int j = *seqIndex;

    for(int i=0; i<newSeqIndex; i++)
    {
        seq[*seqIndex] = newSeq[i];
        *seqIndex++;
    }
}

seq[]是要显示的行,newSeq[]是我试图在seq[]中添加的行。指针必须是bigseq[]的当前位置,最后一个参数是我要添加的行的长度。
希望这不是很混乱:D

最佳答案

*seqIndex++;可能没有按你想的做。应该是(*seqIndex)++;而不是增加seqIndex所指的值。您当前拥有的代码将递增指针本身,并执行解引用操作并丢弃其结果。
您还需要确保seq指向至少包含*seqIndex + newSeqIndex条目的数组,并且newSeq指向至少包含newSeqIndex条目的数组。

关于c - 在C中使用指针合并两个序列-“违规调用”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16761593/

10-11 23:07