#include<stdio.h>
typedef struct telephone
{
char *name;
int number;
} TELEPHONE;
int main()
{
//TELEPHONE index;
TELEPHONE *ptr_myindex;
ptr_myindex = (TELEPHONE*)malloc(sizeof(TELEPHONE));
//ptr_myindex = &index;
ptr_myindex->name = "Jane Doe";
ptr_myindex->number = 12345;
printf("Name: %s\n", ptr_myindex->name);
printf("Telephone number: %d\n", ptr_myindex->number);
free(ptr_myindex);
return 0;
}
當我編譯這個時,它輸出的結果與我不動態分配指向結構的指針時相同,而是使用已被註釋掉的代碼中的部分。爲什麼會發生?在C中指向struct和malloc的指針?
爲什麼你認爲你的結構對象的存儲時間會影響你的函數的行爲? – ouah
我不確定你的意思是「爲什麼會發生這種情況」。你問爲什麼有可能有指向堆棧分配值的指針?如果是這樣,爲什麼不可能? – sepp2k
這是功課嗎?認識它。 –