?? [藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.htm
字號:
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">FH</td><td align="right">2005-8-29 07:17</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>還是這樣寫吧<BR>[code]<BR>mem1=(unit1
*)malloc( sizeof( unit1 ) );<BR>mem2=(unit1
*)malloc( sizeof( unit1 )
);<BR>[/code]<BR>別人容易明白</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">spalash</td><td align="right">2005-8-29 07:28</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>這樣寫就肯定沒有問題了,呵呵.<BR>程序里問題是經過我簡化成上述模型的.</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">mik</td><td align="right">2005-8-29 07:36</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>想用不定長結構體應該類似這樣吧:<BR><BR>struct
unit {<BR> ...
...<BR> char
b[1];<BR>};<BR><BR>
struct unit *pu = (struct unit *)
malloc(sizeof(struct unit) +
100);<BR><BR> ...
...</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">mq110</td><td align="right">2005-8-29 07:42</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>樓主這是什么代碼?
偽代碼?</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">spalash</td><td align="right">2005-8-29 07:42</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>是的,一般是這么用,但是現在在調別人的一段程序.<BR>動不動到內存有關的地方處一些莫明的錯誤.<BR>故此一問.</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">高峰</td><td align="right">2005-8-29 07:56</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>問題:bb已經是自己的bb,不能是其他的bb</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">spalash</td><td align="right">2005-8-29 07:59</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>不是把,對于mem1中的bb指向應該是k+4吧</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">galaxywar</td><td align="right">2005-8-29 08:07</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>120不夠放這兩個unit
吧,訪問mem2里的bb的話,會出問題的</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">高峰</td><td align="right">2005-8-29 08:16</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>bb的地址是不能被改變的!!!!!<BR>它是數組!地址已經固定了</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">yzc2002</td><td align="right">2005-8-29 08:29</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>k+=k+104;<BR>呵呵~~~</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">spalash</td><td align="right">2005-8-29 08:48</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>:)寫錯了,k+=104.<BR>還有,對于mem2訪問時只訪問b的前16個.</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">spalash</td><td align="right">2005-8-29 09:10</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29
border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR>剛開始時,mem1,mem2為空,應該是bb沒有初始化.<BR>不太明白的是對于mem2里的bb是把從k+106往后的100個字節<BR>空間給bb了還是...<BR><BR>后來我要把k給釋放(申請時同時把
讓temp=k),相當于free(temp),<BR>釋放的是120個字節?</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
width="95%" align=center><!--
<tr><td bgcolor="#f0f3fa"><table cellspacing="0" cellpadding="0" width="100%"><td class="bold">luojiannx</td><td align="right">2005-8-29 09:18</td></tr></table></td></tr>-->
<TBODY>
<TR>
<TD bgColor=#def7ff><IMG height=18
src="[藍森林-自由軟件] - 請教各位一個復雜的結構體指針問題.files/icon_new.gif"
width=29 border=0><B>請教各位一個復雜的結構體指針問題.</B><BR><BR><!--<!--[quote][i]原帖由 "spalash" 發表:[/i]<br />剛開始時,mem1,mem2為空,應該是bb沒有初始化.<br />
不太明白的是對于mem2里的bb是把從k+106往后的100個字節<br />
空間給bb了還是...<br />
<br />
后來我要把k給釋放(申請時同時把 讓temp=k),相當于free(temp),<br />
釋放的是120個字節?[/quote]-->--><BR><BR>什么叫空間給了bb,bb只不過是個指針,指向了一塊已經申請好了的內存<BR>既然tmep=k<BR>那free(temp)不就是free(k)么?<BR>對于編譯器來說,指針變量不過是個地址罷了,難道他還記著是哪個變量申請的啊,兩個變量指向同一個地址,變量名不一樣,他就會區別對待?</TD></TR></TBODY></TABLE><BR>
<TABLE class=tableborder cellSpacing=1 cellPadding=4
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -