我有一个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
答案 0 :(得分:4)
*seqIndex++;
可能不符合您的想法。它应该是(*seqIndex)++;
来增加seqIndex
指向的值。您当前的代码会递增指针本身,并执行取消引用操作并丢弃其结果。
您还需要确保seq
指向一个至少包含*seqIndex + newSeqIndex
条目的数组,newSeq
指向一个至少包含newSeqIndex
条目的数组。