我有一個結構:
typedef struct{
int age;
int height
}Human;
我使用該結構創建了一個多維陣列:
Human human_table[3][2]={
{{1,1},{1,1}},
{{1,1},{1,1}},
{{1,1},{1,1}},
};
我創建了一個指向表的指標
typedef struct human_table *humanPointer;
現在對于問題,如何創建一個函式來修改上表?
我目前有這個:
void Modify_Human_age(humanPointer human_table, int x, int y, int New_Age)
{
human_table[x][y]->age=New_Age;
}
但是我收到一個錯誤,正在尋找有關如何修復 Modify_Human_age 函式的幫助。
謝謝
uj5u.com熱心網友回復:
永遠不要在 typedef 后面隱藏指標。它使代碼更難維護和閱讀。所以
typedef從你的代碼中洗掉它。C中的多維表在表的事實表中。所以二維表是一個行表。所以 id
X是行大小,Y是行數,陣列的定義應該是type arr[Y][X]對于索引和大小,使用正確的 (
size_t) 型別而不是int
void Modify_Human_age(size_t x, size_t y, Human (*human_table)[x], int New_Age)
{
human_table[y][x].age=New_Age;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315007.html
上一篇:C中指標的寬度(以位元組為單位)
下一篇:接收陣列作為指標引數的問題
