下面是我寫使用指針打印出從結構的串碼:指針結構沒有返回一個字符串
#include <stdio.h>
#include <stdlib.h>
struct xenon
{
int size1;
int marks[10];
char *w;
struct xenon *p;
} x1,x2;
main()
{
x1.size1=10;
x2.size1=6;
printf("%d\n",x1.size1);
printf("%d\n",x2.size1);
(*p).w="my word";
printf("%s\n",(*p).w);
printf("%s\n",x1.w);
}
現在我得到一個錯誤說我還沒有宣佈函數變量p主要。但是,這也應該是這樣,當我宣佈
x1.w="my word";
printf("%s",x1.w);
我也試過聲明指針變量只是結構之外,它仍然不會編譯。 我如何聲明一個指向結構的指針是錯誤的?還是完全是另一回事?
那麼,你已經定義了x1和x2。所以你有x1.p和x2.p,但是它們沒有在你的代碼中初始化。你可以設置,例如,x1.p = &x2; – Steger
'x1'和'x2'是全局變量,所以它們存在。 – AntonH