gpt4 book ai didi

c - 打印在函数中作为参数传递的结构

转载 作者:行者123 更新时间:2023-11-30 17:51:48 24 4
gpt4 key购买 nike

我有一个 C 程序,它接受一个数组作为输入,该数组将保存为 3 个不同的数组。例如:

0 2 0  
1 0 0
0 0 3

将被保存为Elemenets = [2,1,3]和相应值的坐标,Rows = [1,2,3] Columns = [2,1, 3] 在我创建的结构中。

输入如下:

首先我给出数组的维度,然后是数组中非零值的数量,然后是值及其坐标。

在我给出输入后,我尝试使用函数 print2d(struct arrayCollection the array) 打印数组,但结构数组内部似乎有错误的数字(内存地址?)。当我将结构作为参数传递给函数时,我认为我在结构上做错了,但我找不到问题。我还尝试通过引用作为指针传递结构,但得到了相同的结果。

这是我的 program

我的ide是xcode,编译器是apple llvm编译器4.1

最佳答案

你的结构只有指针,没有实际的数组。您使这些指针指向本地数组,当函数返回时,这些本地数组不再存在,因此您的指针指向无效的内容。尝试通过这些指针访问数据是未定义的行为。

另一种方法是使用 malloc 为数据动态分配内存,并让结构体的指针指向动态分配的内存。

关于c - 打印在函数中作为参数传递的结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16510359/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com