English 中文(简体)
使用函数对 C 中的建筑结构进行操控
原标题:Manipulating a struct in C using functions

我试图操纵一个动态分配矩阵,该矩阵被宣布为使用功能的全球指示器,为简单起见,我不打算在这里粘贴代码,但我会提供一个相当的,也许更清晰的示例。

structname **variable;

int main()
{
    variable = readfile("filename");
    variable = modify(variable);
    output(variable);
}

这看起来很简单,输入和输出工作正确, 问题在于我的“ 修改” 功能没有做任何修改, 这是一个例子:

structname **modify(structname **p)
{
  swapitems(p[x][y],p[j][z]);
  modifyitem(p[x][y]);
  return p;
}

void swapitems(structname a, structname b)
{
     structname buffer;

     buffer = b;
     b = a;
     a = buffer;
}

I guess the problem is that I can t pass the elements to swapitems and modifyitem like that, how can I modify items using functions like those in the modify ? (of course there are no compiling errors )

最佳回答

由于您实际上正在将支架本身作为参数通过,所以您只是将那些支架位置的堆叠位置转换为支架,然后当您返回时,它不会影响原始阵列。您可以通过通过阵列支架的实际地址来解决这个问题:

void swapitems(structname* a, structname *b){

    structname buffer;

    buffer = *b;
    *b = *a;
    *a = buffer;
}

然后函数调用应该是

swapitems(&p[x][y],&p[j][z]);

您也应该同样通过您正在修改的项目的地址 。 modifyitem

问题回答

暂无回答




相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签