我有一個列表。列表中的每個元素都是一個結構體。如何使指向指向列表中的每個成員的指針
struct A
{
int size;
}
的數據是這樣的:
list[0]->size = a number.
我如何分配一個指針到列表中的每個成員?
int *p;
for(i = 0; i < listSize; i++)
{
p = &list[i];
}
這不起作用,因爲我只分配一個指針到列表的最後一個元素。我應該製作一個指針列表嗎?
這應該解決XY問題。 如何爲列表中的每個元素創建指針?
編輯: 表看起來是
A **list;
我想通過指針,而不是通過結構來進行排序,以便它更快。
現在正在試圖這樣:
A ***p = (A***) malloc(sizeof(A***));
for(i = 0; i < listLength; i++)
p[i] = &list[i];
for(i = 0; i < listLength; i++)
printf(p[i]->size); // Error.
這聽起來像一個典型的[XY問題(HTTP://meta.stackexchange .COM /問題/ 66377 /什麼,是最XY-問題)。你想完成什麼? – Pankrates
'list [i]'已經是一個指向每個元素的指針。你問的是錯誤的問題。 – gcochard
我不禁注意到,您的示例結構沒有鏈接成員指向列表中的下一個結構實例。沒有鏈接指針的地方,你沒有鏈接列表。這是你問的嗎? - 可能不是你似乎在使用數組,而不是鏈接列表,但是你又沒有'malloc'd內存的上述數組 - 你似乎正在使用一個未初始化的指針,就好像它是一個數組。 – Steve314