我想創建一個鏈接列表,您可以更新節點中的數據,但無論我嘗試什麼,C似乎都不允許我更新空指針的值(或者更確切地說它指向的點至)。下面是測試代碼,我有:如何修改指針以通過函數void?
void newData(void * d)
{
char data[] = "world";
d = &data;
}
int main()
{
char testData[] = "hello";
void * testPointer = &testData;
printf("TestData is %s\n", (char *)testPointer);
// Modify the data
newData(&testPointer);
printf("TestData is %s\n", (char *)testPointer);
}
剛剛輸出::
TestData is hello
TestData is hello
我缺少明顯的東西嗎?我也嘗試使用指針指針,但無濟於事。
參數類型是錯誤的,應該是無效** 。 – 2011-02-08 20:29:47
或者只是將它稱爲`newData(testPointer);'? – John 2011-02-08 20:32:56
`void * testPointer =&testData;`此語句中不需要地址運算符。當你給一個指針分配一個數組時,數組的地址get被賦值。所以,你可以做`void * testPointer = testData;`。在你的程序中還有其他的陳述,你可以做到這一點。 – Mahesh 2011-02-08 20:40:57