我有一个2D数组,我必须合并他所有的渐进列。我已经将数组拆分为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[]
添加的行。指针必须是大seq[]
的当前位置,最后一个参数是我正在添加的行的长度。希望这不是很混乱:D
*seqIndex++;
可能不会按你的想法做。它应该是(*seqIndex)++;
而不是增加seqIndex
指向的值。您当前使用的代码递增指针本身,并执行取消引用操作并丢弃其结果。
您还需要确保seq
指向至少包含*seqIndex + newSeqIndex
条目的数组,并且newSeq
指向至少包含newSeqIndex
条目的数组。