我有一个二维数组,我必须合并所有他的列是渐进的。我已经将数组拆分成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/