我有一个结构数组。实际上,它是一个二维数组,但是一个不寻常的二维数组。 我在堆栈上分配内存:
#define MAX_VERTICES 5068
struct ARRAY_FIX {
int ele[MAX_VERTICES];
int size;
int first;
};
ARRAY_FIX C[MAX_VERTICES];
int main() {
//...
}
因此,我需要将一行替换为另一行(实际上,我需要执行此操作以按某些条件对行进行排序)。
如何才能执行?据我了解,如果我使用这段代码:
С[i] = C[j];
在这段代码中,运算符“=”将复制所有数组,不是吗?我不需要它,我想通过改变指针来改变行
我该怎么做?
最佳答案
您可以使用指向struct ARRAY_FIX
的指针数组,然后将指针切换到该数组中。
I am allocating memory on stack.
在文件范围内声明的对象通常不在堆栈上。
关于更改矩阵的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079817/