📄 [蓝森林-自由软件] - 请教各位一个复杂的结构体指针问题.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 + -