簡體   English   中英

打印在函數中作為參數傳遞的結構

[英]Print struct that was passed as argument in function

我有一個C程序,它將一個數組作為輸入,將另存為3個不同的數組。 例如:

0 2 0  
1 0 0  
0 0 3  

將在我創建的結構中將其另存為Elemenets = [2,1,3]以及相應的坐標值Rows = [1,2,3] Columns = [2,1,3]

輸入如下:

首先,我給出數組的尺寸,然后給出數組具有的非零值的數量,然后給出其坐標值。

輸入完后,我嘗試使用function print2d(struct arrayCollection the array)打印該數組,但是該結構的數組內部似乎有錯誤的數字(內存地址?)。 我認為我將結構作為函數的參數傳遞時,結構做錯了,但我找不到問題。 我也嘗試通過引用將結構體作為指針傳遞,但結果相同。

這是我的程序

我的想法是xcode,編譯器是Apple LLVM編譯器4.1

您的結構只有指針,沒有實際數組。 您使這些指針指向本地數組,並且當函數返回時,這些本地數組不再存在,因此您的指針指向無效的對象。 嘗試通過這些指針訪問數據是未定義的行為。

一種替代方法是使用malloc為數據動態分配內存,並讓結構的指針指向動態分配的內存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM