更改矩阵的行

标签 c pointers

我有一个结构数组。实际上,它是一个二维数组,但是一个不寻常的二维数组。 我在堆栈上分配内存:

#define MAX_VERTICES 5068
struct ARRAY_FIX {
    int ele[MAX_VERTICES];
    int size;
    int first;
};
ARRAY_FIX C[MAX_VERTICES];
 
int main() {
//...
} 

因此,我需要将一行替换为另一行(实际上,我需要执行此操作以按某些条件对行进行排序)。

Replacing of the rows

如何才能执行?据我了解,如果我使用这段代码:

С[i] = C[j];

在这段代码中,运算符“=”将复制所有数组,不是吗?我不需要它,我想通过改变指针来改变行

我该怎么做?

最佳答案

您可以使用指向struct ARRAY_FIX的指针数组,然后将指针切换到该数组中。

I am allocating memory on stack.

在文件范围内声明的对象通常不在堆栈上。

关于更改矩阵的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11079817/

相关文章:

c - 如何在 Visual Studio 2010 中找到地址对应的段

c - 描述: int (*(*var[3])())(void (*)());

c - 共享内存中数组的长度是多少?

c - C语言如何在不停止程序的情况下使用scanf?

c - 如何将十六进制字符转换为 4 位二进制表示形式?

linux - 如何在不读取的情况下访问写入套接字的数据

c++ - 段错误(核心转储)ROS c++ 箭头

python - 使用 ctypes 从 python 访问 C 中的全局指针

C 通过指针将数组传递给函数

c - 如果传递的函数也将函数作为参数,如何将函数作为参数传递给 C 中的函数?