1樓:
你只是申請了一個stknode型別的指標,但是沒有指向任何例項想對成員變數賦值,必須宣告一個例項,然後讓指標指向它struct stknode s, *p;
p = &s;
s.a[1] = 1;
printf ("%d", p->a[1]);
或者從動態記憶體申請空間
struct stknode *p;
p = (struct stknode *) malloc (sizeof (struct stknode));
p->a[1] = 1;
printf ("%d", p->a[1]);
free (p);
如果你想在使用自定義結構時候不寫struct修飾符,必須給型別起個別名
typedef struct stknode sn;
2樓:宗茗
你這樣編譯能通過?結構體變數宣告應該都是struct 開頭的吧。可能你這個編譯器高階點。。
你出錯的原因應該是你只宣告瞭一個struct stknode的指標,指標其實就是一個unsigned long型別的數值而已,在記憶體中只佔4個位元組,如果你要用結構體,宣告應該是這樣的
struct stknode p1;
p1.a[1]=1
這樣p1才會佔一個結構體的記憶體
3樓:匿名使用者
你好!這個程式沒有動態分配記憶體空間
如果你寫成這樣的話就可以了
#include
#include//動態儲存分配函式
#define len sizeof( stknode)//規定len為sizeof( stknode)的大小
typedef struct stknode stknode ;
struct stk
;int main()
4樓:
stknode *p1自己malloc一定的空間出來,你再試試。可能現在是野指標,剛好指向了不能寫入的記憶體地址.
5樓:匿名使用者
stknode *p1;只是一個指標啊 指向什麼?
一道c語言程式設計題,執行結果一直是0,求大神指教 5
6樓:gta小雞
scanf的格式字串應該使用%lf%d%lf的形式,中間不要加逗號,讀入資料時以空格或回車作為分隔。格式字串中新增逗號是不好的習慣,除非特殊格式需要否則不要使用逗號。
%lf表示以double型讀入一個資料,而你對應存放資料的變數是float型,型別不匹配。將其改為double型或將%lf改為%f。
怎麼回事,求c語言大神指教,急急急急
7樓:
胡寫,問題大了!指
針、指標的指標、變數三者的關係沒搞清,亂=一氣,肯定錯。首先,從bb=&b...那一行看,bb應該是指向指標的指標,即二重指標,可是宣告的時候它們是指向int型變數的指標,所以類似bb=&b的語句全部非法!
要修改就得在宣告時在*bb、*cc...前再加一個*,讓編譯器知道它們是指向另一個指標的指標而不是指向int型變數的指標。但這樣後,if後面的語句仍有問題:
h是個int型變數,怎麼能用h=ee;這樣的語句為h賦一個二級指標的值?ee=&ff就更離奇了,ee和ff都是二級指標,&ff就是三重指標,ee=&ff分明是要把三重指標的值賦給一個二重指標變數,=號兩邊型別就不匹配……由於沒有說題目要幹什麼,從**中也看不出目的,所以不好改!
8樓:匿名使用者
指標變數 bb,cc,dd,ee,ff 直接列印出來是它的地址值,
所以printf中應該寫為: *bb,*cc,*dd,*ee,*ff
vb程式設計100至999間能被3整除的數 求大神指教,各位大神,求指教,謝謝
9樓:匿名使用者
任何程式設計裡面遇到整除問題,你首先應該想到的是模運算。
整除,就意味著餘數是0;
那麼如果 num % 3 == 0,那麼num 這個數就是可以被3整除的,思路告訴你了,程式自己寫
c語言剛剛入門,求大神指教。
c語言這樣寫輸入y或n後,為什麼它還是重複迴圈啊?求大神指教!
10樓:匿名使用者
!((c='y')||(c='y')||(c='n')||(c='n'))
判斷條件你寫錯了
c語言求大神指教,C語言程式設計,求大神指教?
include define n 10 int check int a,int area,int t int plus num 0 int result 0 int i 0 for i 遞迴對t進行全排列尋找可行解,不知道對不對,我不是大神。include define max 10 int m,n...
c語言程式設計問題求指教,C語言程式設計問題,求指教
include stdio.h int main if a c if b c printf c c c n a,b,c return 0 如何學c語言啊,我一遇到程式設計題就不會了,怎麼辦,求指教 勤能補拙。真想學的話,把你不會寫的題目記下來,仔細看看別人怎麼寫的 爭取理解吃透,然後不看別人的自己寫...
求c語言大神解答這個問題,求C語言大神解答這個問題
這個和float表示的有效位有關係 float 是單精度 只能表示7個有效位,所以你111111.111相當於只能把111111.1賦值給x,y變是如此。如果你用double float x,y 就不會有這種情況了。因為雙精度double float 可以表示9個有效位。double float 的...