ç§ã¯WindowsNT4+VisualC++6ã§ããã°ã©ã ãäœã£ãŠãã
ã®ã§ãããfreeã䜿ããªãïŒã³ãŒãã£ã³ã°ãã¹ïŒæã¯
ã©ã®ããã«ãªããçåã«ãªããŸããã
å°ã調ã¹ãã®ã§ãããWindowsã ãšè§£æŸãããªãå Žå
ããããããªèšäºããããŸãããä»ã®OSïŒUNIXïŒã§
ã¯ã©ããªãã§ããããã
ãŸããã¡ã¢ãªã®æ¶è²»éãç¥ãæ¹æ³ã¯äœããããŸãã§ã
ãããïŒ
ãæå°ãããã ããã°å¹žãã§ãã
--
ã²ãã
"Hiroki.Y" wrote:
in <_kXb6.1352$t74.1...@newsall.dti.ne.jp>
> mallocã§åçã«å²ãåœãŠãã¡ã¢ãªã¯ãfreeã§è§£æŸãã
> ãšæããŸããããã®freeãè¡ããªãã§ããã®ããã°ã©
> ã ãçµäºãããããå²ãåœãŠãã¡ã¢ãªã¯æ®ã£ãŠããŸã
> ã®ã§ããããïŒ
åºæ¬çã«ã¯ãããã»ã¹çµäºåŸã«OSãéæŸããã¯ãã§ãã
> ç§ã¯WindowsNT4+VisualC++6ã§ããã°ã©ã ãäœã£ãŠãã
> ã®ã§ãããfreeã䜿ããªãïŒã³ãŒãã£ã³ã°ãã¹ïŒæã¯
> ã©ã®ããã«ãªããçåã«ãªããŸããã
freeããªããããšãã£ãŠãå³ã³ãŒãã£ã³ã°ãã¹ãšããèš³ã§ã¯ãªã
ãšæããŸãã
ãçµäºçŽåã«freeããªããã¯ãã»ãŒæå³ç¡ãã§ãããã
# mallocããã ãããŠãæ»ãã§ããCGIãªããããããŸããã
> å°ã調ã¹ãã®ã§ãããWindowsã ãšè§£æŸãããªãå Žå
> ããããããªèšäºããããŸãããä»ã®OSïŒUNIXïŒã§
> ã¯ã©ããªãã§ããããã
GDIãªãœãŒã¹ãªããã¯ããªãŒã¯ããããšããã£ããããªâŠã
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
From : Shigeru Hanada
Mail : mo...@jcom.home.ne.jp
> ç§ã¯WindowsNT4+VisualC++6ã§ããã°ã©ã ãäœã£ãŠãã
> ã®ã§ãããfreeã䜿ããªãïŒã³ãŒãã£ã³ã°ãã¹ïŒæã¯
> ã©ã®ããã«ãªããçåã«ãªããŸããã
> å°ã調ã¹ãã®ã§ãããWindowsã ãšè§£æŸãããªãå Žå
> ããããããªèšäºããããŸãããä»ã®OSïŒUNIXïŒã§
> ã¯ã©ããªãã§ããããã
>
ã·ã¹ãã ã«ãªãœãŒã¹ãèŠæ±ããŠãããŠè¿åŽããªããšãªãœãŒã¹ãªãŒã¯
ã«ãªããšæããŸããâŠã
> ãŸããã¡ã¢ãªã®æ¶è²»éãç¥ãæ¹æ³ã¯äœããããŸãã§ã
> ãããïŒ
>
ã䜿ãã®ç°å¢ãªãã°ãCRT ã©ã€ãã©ãªã圹ã«ç«ã€ã§ãããã
äŸãã°ãäžèšã®ãããªã³ãŒãã§ããããã°ãã«ãããŠãããã°å®è¡
ãããšããããã°ãŠã£ã³ããŠã«ã¡ã¢ãªãªãŒã¯ãæ€åºããããšãå ±å
ãããŸãã
--- code start
#define _CRTDBG_MAP_ALLOC
#include <malloc.h>
#include <crtdbg.h>
void main()
{
char *buf;
_CrtSetDbgFlag( _CRTDBG_LEAK_CHECK_DF |
_CrtSetDbgFlag( _CRTDBG_REPORT_FLAG ) );
buf = malloc(10000);
}
--- code end
nori
"Hiroki.Y" <hir...@da2.so-net.ne.jp> writes:
> ç§ã¯WindowsNT4+VisualC++6ã§ããã°ã©ã ãäœã£ãŠãã
> ã®ã§ãããfreeã䜿ããªãïŒã³ãŒãã£ã³ã°ãã¹ïŒæã¯
> ã©ã®ããã«ãªããçåã«ãªããŸããã
> å°ã調ã¹ãã®ã§ãããWindowsã ãšè§£æŸãããªãå Žå
> ããããããªèšäºããããŸãããä»ã®OSïŒUNIXïŒã§
> ã¯ã©ããªãã§ããããã
å»å¹Žã®ååã«ãããŠã® fj.comp.lang.c ã®èšäºã®ãã¡ãããªããšã
8å²ãããã¯ãã®ããšã«ã€ããŠè°è«ããŠããããªæ°ãããŸãã
ãã£ããèšäºã®æ€çŽ¢ãããã®ãªããæ¯é埡芧ã«ãªã£ãŠã¿ãŠãã ããã
# ãããããŸãå§ãŸãã®ãããâŠããã® Thread ãã
âŒâ³ ã®ã ããã (NODA Takashi)
âœâ² mailto:no...@mb.neweb.ne.jp
ããããã®ããšã«ã€ããŠã¯æ©ã
ã«æ±ºçãä»ããŠããã®åŸã¯ã
ããã°ã©ãã³ã°ã¹ã¿ã€ã«ãšããŠãfreeãã¹ããã©ãããã¡ã
ãã¡ãããŠããã ãã®ã¯ãã§ãã
æåã®è³ªåããããã 1,2é±é以å
ã«ã倪ç°ããããµããªèš
äºãåºããŠãã ãã£ãŠããã®ã§ããããèªãã°ãå¿
èŠãªæ
å ±
ã¯ã»ãŒãã¹ãŠåŸãããã¯ãã§ãã
---
äœæž¡è©©é (ãã© ããã) / e-mail : sa...@smlab.tutkie.tut.ac.jp
> > ç§ã¯WindowsNT4+VisualC++6ã§ããã°ã©ã ãäœã£ãŠãã
> > ã®ã§ãããfreeã䜿ããªãïŒã³ãŒãã£ã³ã°ãã¹ïŒæã¯
> > ã©ã®ããã«ãªããçåã«ãªããŸããã
> freeããªããããšãã£ãŠãå³ã³ãŒãã£ã³ã°ãã¹ãšããèš³ã§ã¯ãªã
> ãšæããŸãã
> ãçµäºçŽåã«freeããªããã¯ãã»ãŒæå³ç¡ãã§ãããã
ãªã¹ã¹ã¡ã®å®éšããããŸãã
ãã®ãæå³ç¡ããã®æ ¹æ ãå°ããŠã¿ãŸãããã
éåžžã«é«ã確çã§ UNIX ãåºãŠããŸãã
> # mallocããã ãããŠãæ»ãã§ããCGIãªããããããŸããã
ããã CGI ã®ãã°ãšèšããªããšãããªã©æ¶ãåºãŸãã
free ãããšèªçããåŠçç³»ãããããã§ããïŒïŒïŒ
éã§ããããæå³ããããã®æ ¹æ ãå°ããŠã¿ããšçµã¿èŸŒ
ã¿ç°å¢ãšãäžå®å
šãªOSã®äŸãåºãŠããã ãã§ãããã
--
倪ç°çŽ(Junn Ohta) (æ ª)ãªã³ãŒ/æ°æšªæµäºæ¥æ
oh...@sdg.mdd.ricoh.co.jp
Junn Ohta wrote:
> fj.comp.lang.cã®èšäº<956i03$as7$1...@news01bj.so-net.ne.jp>ã§
> kat...@ka2.so-net.ne.jpããã¯æžããŸããã
> > ãã®ãæå³ç¡ããã®æ ¹æ ãå°ããŠã¿ãŸãããã
> > éåžžã«é«ã確çã§ UNIX ãåºãŠããŸãã
>
> éã§ããããæå³ããããã®æ ¹æ ãå°ããŠã¿ããšçµã¿èŸŒ
> ã¿ç°å¢ãšãäžå®å
šãªOSã®äŸãåºãŠããã ãã§ãããã
ãæå³ãªãããšãã»ãŒæå³ãªããã®éããããã¯æ±²ã¿åã£ãŠãããŸããããã
--
cog...@sp.hudson.co.jp
æ ªåŒäŒç€Ÿãããœã³
ç ç©¶éçºæ¬éšãç ç©¶éçºèª²
ç岡 å¿(Kumaoka Shinobu)
äžå®å
šãªOSã£ãŠã©ãããæå³ã§ããããïŒ
ãmallocããã¡ã¢ãªã¯OSã確å®ã«éæŸããã
ãšãã話ã¯ãããããšã¯ãªãã§ãã
ãšããããå®å
šãªOSãã²ã€ãããªã®ãªãã
ãUNIXã®å Žåã
ãšããã€ããšããŠã»ããã§ãã
ããã§ã¯ãANSI Cèšèªä»æ§ããã¡ããšãµããŒãã§ããªã
OSãçšåºŠã®æå³ã§ãã
> ãšããããå®å
šãªOSãã²ã€ãããªã®ãªãã
> ãUNIXã®å Žåã
> ãšããã€ããšããŠã»ããã§ãã
ãANSI CãåãOSãã§ãã ãã¶ãã§ããã
# ANSIã¯å¿ èŠã«å¿ããŠISOãJISã«èªã¿æ¿ããŠãã ããã
# è°è«æºèŒã ã£ãã¹ã¬ãã2æ¬ã®ãã¡ã
# ã¹ã¬ãããã¹ã¬ãããmalloc & freeããèªããªããã¯
# ç§ã®èšäºã®åŸãã«é£ãªã£ãŠãããŠãã®ã§ããã
# ç§èªèº«ã¯éäžããèªãæ°åãç¡ããªã£ãŠå±
ããŸããã
# ã¹ã¬ãããã¹ã¬ãããmalloc & freeããèªããªãããèªããªã....
ã§ãããèŠãã§ç³ãèš³ãªãã®ã§ãã....
Junn Ohta wrote:
> ãANSI CãåãOSãã§ãã ãã¶ãã§ããã
ããã§ããã?
確ããANSIæšæºã©ã€ãã©ãªã®ã»ãã®äžéš(limits.hãšstdarg.hããªãã)ã
ãµããŒãããŠããã°ANSIæšæºæºæ ã®åŠçç³»(ANSI C)ãåä¹ããã®ã§ã¯
ç¡ãã£ãã§ããã£ã?
ã€ãŸããããŒãã³ãŒãã®ã¿ã®OSã§ããANSI CãåãOSãã§ãããããª....
--
ç«¹æ¬ è¡ ãœããŒ(æ ª)PNC,PVC,DIéšé1éš æè¡5課
ããã¯freestanding environment(OSã®ãªãç°å¢)ã§ã®è©±
ã§ãããããªã®ã§ããANSI Cã®åãOSããšãã衚çŸã§ã¯
ãã¡ãã®ããšãèããŸããã§ããã
hosted environment(OSäž)ã§ã¯malloc()ãšfree()ãå¿
é
ã§ãã£ãŠãmalloc()ãããã®ãfree()ããå¿
èŠããããš
ã¯ã©ãã«ãæžããŠãªãããšããããšã ã£ããšæããŸãã
S> ãmallocããã¡ã¢ãªã¯OSã確å®ã«éæŸããã
S> ãšãã話ã¯ãããããšã¯ãªãã§ãã
ãã®ä»¶ã«é¢ããŠãããã°ã©ãã³ã°ã®ããªã·ãŒã«ã¯èå³ããªãã®ã§ããã
ãŸã§ãçŸå®åé¡ãšããŠè³ªåãããã®ã§ãã...
S> ãšããããå®å
šãªOSãã²ã€ãããªã®ãªãã
S> ãUNIXã®å Žåã
S> ãšããã€ããšããŠã»ããã§ãã
ãããã(確å®ã«è§£æŸããã)ç°å¢ã£ãŠéåžžã«å€ããŠããã®å Žåãã®åã«
ã€ãéšåããšã£ãŠãé·ããŠå€§å€ãããªã®ã§ãçããŠæžãã®ã§ããã°ãé
ã«ãïœä»¥å€ã®å Žåããšè¡šçŸããããšæã£ãŠããŸãã
以åã®è°è«ã®æããè¯ãç¥ãããŠãããããªç°å¢ã§ãããã»ã¹ãçµäºã
ããšãã«è§£æŸããŠãããªããšããç°å¢ãšããã®ã«ã©ããããã®ãããã®
ããçµå±ææ¡ããããšãåºæ¥ãŸããã§ããã
`malloc' 以å€ã®é¢æ°ãªãã·ã¹ãã ã³ãŒã«ãªãã«ã€ããŠã¯å®éã«äœ¿ããš
ãã«åå¥ã«èª¿ã¹ãŸãã®ã§ããããŸã§ã `malloc' ãšãã ANSI C æºæ ã®
颿°ã§ã¡ã¢ãªã確ä¿ããŠããã®ãŸãŸããã»ã¹ãçµäºããå Žåã«ãã¡ã¢ãª
ãè§£æŸãããªã(ããšããã)ç°å¢ãæããŠãã ããã
--
éŽæšåäž / kei...@nanap.org
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4 4089 7AAF 2B03 ECBD 614B
Junn Ohta wrote:
> ããã¯freestanding environment(OSã®ãªãç°å¢)ã§ã®è©±
> ã§ãããããªã®ã§ããANSI Cã®åãOSããšãã衚çŸã§ã¯
> ãã¡ãã®ããšãèããŸããã§ããã
ãããããã§ãããæãåºããŸããã
ã§ãçµå±ã®ãšãããèšèå°»ãæãããŠã€ãã£ã¢ã³ãä»ããŠããã ã
ãªã®ã§ãã(^^;ã
freestanding environment ã®èŠæ±ãå
ãããANSI Cã§æžããã³ãŒãã
äŸãã°ÎŒITRONäžã§åããŠããäºã¯ã
ç§ã®æ¥åžžã§ã¯æ¥µããŠãããµããå
æ¯ãªã®ã§ã
ã¡ãã£ãšè¶ã
ãå
¥ããŠã¿ãŸããã
> hosted environment(OSäž)ã§ã¯malloc()ãšfree()ãå¿
é
> ã§ãã£ãŠãmalloc()ãããã®ãfree()ããå¿
èŠããããš
> ã¯ã©ãã«ãæžããŠãªãããšããããšã ã£ããšæããŸãã
ã§ãæŽã«æ··ãã£è¿ããŸãã(^^)
ããããFAQãªã®ã§ãããã
freestanding environment ã®èŠæ±ãå
ãããåŠçç³»ã§ã
malloc() ãšããåç§°ã®ãæšæºãšç°ãªã仿§ã®é¢æ°ãæäŸããäºã¯
èš±ãããŠããã®ã§ãããã?
ãããšãããããªäºãããç¬éãANSI Cãåä¹ããªããªãã®ã§ãããã?
# ãã®2æ¬ã®ã¹ã¬ããã ãã§ã誰ãFAQéã«ãŸãšããŠãããªãããªãã
--
ç«¹æ¬ è¡ ãœããŒ(æ ª)PNC,PVC,DIéšé1éš
> freestanding environment ã®èŠæ±ãå
ãããåŠçç³»ã§ã
> malloc() ãšããåç§°ã®ãæšæºãšç°ãªã仿§ã®é¢æ°ãæäŸããäºã¯
> èš±ãããŠããã®ã§ãããã?
> ãããšãããããªäºãããç¬éãANSI Cãåä¹ããªããªãã®ã§ãããã?
ããŒããèŠæ Œã ãšã
1. freestanding environmentã¯ãèšèªä»æ§ã®ãã¡ç¹å®ã®ãã®ã䜿ã£ãŠããªã
strictly conforming programãåããªããã°ãªããªãã
2. strictly conforming programãåããªããªããããªæ¡åŒµã¯ãã¡
ãšãªã£ãŠããŸããã
ã§ãmalloc()ã¯äžã®1.ã§é€ãããéšåã«å
¥ã£ãŠãããã§ãã...
ã1.ãå
ããããã°ã©ã ã¯ç¬èªä»æ§malloc()ãåŠçç³»ã«å
¥ã£ãŠããŠãåããã
æ§ããªãããšè§£éããã®ããªããmalloc()ã䜿ã£ãŠããããã°ã©ã ã¯ã©ããå
ã
åããªããã
> # ãã®2æ¬ã®ã¹ã¬ããã ãã§ã誰ãFAQéã«ãŸãšããŠãããªãããªãã
å
ã
FAQã«ã¯å
¥ã£ãŠããã§ãããã
http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/C-faq/C-faq-07.html#7.24
åç°æŠåž
ååããã®èŸºã¯ãã¡ããã¡ãã«ãªã£ãŠã£ããããª...
Junn Ohta wrote in message <9584nb$7k2$1...@ns.src.ricoh.co.jp>...
>hosted environment(OSäž)ã§ã¯malloc()ãšfree()ãå¿
é
>ã§ãã£ãŠãmalloc()ãããã®ãfree()ããå¿
èŠããããš
>ã¯ã©ãã«ãæžããŠãªãããšããããšã ã£ããšæããŸãã
ããã§ãã確ãã«ã©ãã«ãæžããŠãªãã§ãããããã°ã©ã ã®çµäºæã«
é åãéæŸããããšãæžããŠãããŸãããã¡ã¢ãªãªãŒã¯ã®èµ·ããèµ·ããªãã¯ã
èšèªä»æ§ã®ç¯å²å€ã§ãã
ãšããã§ãfree()ã®æ¹ã«ã¯ã(JIS X3010 7.10.3.2)
| æ©èœ free颿°ã¯ãptrãæãé åãéæŸãããã®åŸã®å²ä»ãã«äœ¿çšã§ãã
| ããã«ããã(åŸç¥)
ãšæèšããŠãããã§ãããããšãããšãäŸãã°GCä»ãã®Cã€ã³ã¿ããªã¿ã
å®è£
ãããšããŠ(å
šããŒã¿åã«ãã€ã³ã¿ã§ãããã©ãããå€å¥ã§ãããã©ã°ã
ä»ããã°å®è£
ã¯å®¹æãªã¯ããæ¿ããå¹çæªããã©)ãããã€ã®free()ã®
å®è£
ãã
void free(void *p)
{
/* äœãããªã */
}
ãŠãªæãã«ãªã£ãŠããããã®åŠçç³»ã¯èŠæ Œæºæ ãåä¹ããªããã§ãããã?
> 詳ããæ¹
------------------------------------------------------------
åæ© å匥 maeb...@cse.co.jp
http://member.nifty.ne.jp/maebashi/
------------------------------------------------------------
ããããããšã§ããããã¡ããšfree()ããã£ãŠã¡ã¢ãªãŒ
ãªãŒã¯ãããããããªããã
> ããããããšã§ããããã¡ããšfree()ããã£ãŠã¡ã¢ãªãŒ
> ãªãŒã¯ãããããããªããã
free ã¯äœ¿ã£ãŠã¯ãªããªã颿°ãªã®ã§ããã
> ãANSI CãåãOSãã§ãã
ãã¶ãã§ããã
>
> # ANSIã¯å¿
èŠã«å¿ããŠISOãJISã«èªã¿æ¿ããŠãã ããã
å°ãªããšã JIS ã«ã¯ãexit ã free çžåœã®åäœãè¡ããšã¯
ã©ãã«ãæžããŠãããŸãããèŠæ Œæžãæå
ã«çœ®ããã«
ANSI C ã謳ãè°è«ãªã®ã§ããã®çšåºŠã®è°è«ãšã®èªèãš
äºããæ¿ç¥ãããããããšãããããããŸãã
# ç§ãšååã®äŒŒãŠãããã®äººã§ããã
# ããã®èšŒæã¯ã§ããŠããŸãããã
ãexitãfreeçžåœã®åäœãè¡ããå¿
èŠãªã©ã©ãã«ããªã
ããšã¯ååã¡ãããšèª¬æããã®ã§ããã©ãã
ä»åã®è©±ã¯
(1) ANSI Cã®èŠæ Œç¯å²å
ã§ã¯malloc()ããã¡ã¢ãªãŒãæ
確ã«OSã«è¿ãææ®µãååšããªãã
(2) ãããã£ãŠANSI Cããã¡ããšåãOSãªãfree()ãã
ããããŸããã¡ã¢ãªãŒãªãŒã¯ãªã©ããã¯ãããªãã
(3) éã«ã¡ã¢ãªãŒãªãŒã¯ãããªããããªOSã¯ãANSI Cã
ãã¡ããšåãOSãã§ã¯ãªãã
ã ãã®ããšã§ããã
Junn Ohta wrote in message <959ecl$kri$1...@ns.src.ricoh.co.jp>...
>(1) ANSI Cã®èŠæ Œç¯å²å
ã§ã¯malloc()ããã¡ã¢ãªãŒãæ
> 確ã«OSã«è¿ãææ®µãååšããªãã
èŠæ Œã«ã¯ãfree()ã§OSã«è¿ããŠã¯ãããªããšãæžããŠãªããšæããŸããã
>(2) ãããã£ãŠANSI Cããã¡ããšåãOSãªãfree()ãã
> ããããŸããã¡ã¢ãªãŒãªãŒã¯ãªã©ããã¯ãããªãã
ãªãã§ãã?
>(3) éã«ã¡ã¢ãªãŒãªãŒã¯ãããªããããªOSã¯ãANSI Cã
> ãã¡ããšåãOSãã§ã¯ãªãã
ãªãã§ãã?
# ç§ã¯ããå¿
ãfree()ããããšäž»åŒµãããããã§ã¯ãªãã§ãã
ã¯ããèŠããã«ãè¿ããšãè¿ããªããšãæžãããŠããªãã
ã ããè¿åŽãããããšã¯æåŸ
ã§ããªãããšããããã§ãã
> >(2) ãããã£ãŠANSI Cããã¡ããšåãOSãªãfree()ãã
> > ããããŸããã¡ã¢ãªãŒãªãŒã¯ãªã©ããã¯ãããªãã
> ãªãã§ãã?
free()ãOSã«ã¡ã¢ãªãŒãè¿ããšã¯éããªãã®ã ãããã
ãããã¡ã¢ãªãŒããã¡ããšåãæ»ãã®ããANSI Cããã¡
ããšåãOSãã®åœç¶ã®åããã ããã§ããã
> >(3) éã«ã¡ã¢ãªãŒãªãŒã¯ãããªããããªOSã¯ãANSI Cã
> > ãã¡ããšåãOSãã§ã¯ãªãã
> ãªãã§ãã?
ANSI Cã§ã¯free()ããããšãèŠæ±ãããŠããªãã®ã ããã
free()ããªãããã°ã©ã ããã£ããããã§ã¡ã¢ãªãŒãªãŒ
ã¯ãã(ã€ãŸããããOSããšèœã¡ã)ãããªOSã¯ãANSI C
ããã¡ããšåãOSããšã¯ãããªããããã§ããã
ããªãã ãååã®èžãè¿ãã£ãŠ(T_T)æ°ãããŸãã ...
ããANSI-Cãã§ã¯èŠæ Œæºæ ã®å®è£
ãšããŠããOSãäžã§çšŒåããããšã
æ±ããŠããŸããïŒããŸããOSãã®å®çŸ©ãšã¯ïŒ
ããANSI Cãã§ã¯ãmalloc()颿°ããOSãããã¡ã¢ãªãååŸããããš
ãšéå®ããŠããã®ã§ããïŒ
ãexit()ã®ä»æ§ã¯ãããã°ã©ã ã®çµäºã宣èšããmain()ã®åŒã³åºãå
ã«å¯ŸããŠexit()ã®åŒæ°ãšããŠæž¡ãããå€ãè¿ãã ãã ãšæããŸãã
ããã以å€ã®åŠçã¯ãCèšèªã§çæããã³ãŒããå®è¡ããŠãããOSãã
ããŸããŸãã®ãããªæ©èœãæã£ãŠãããåæã«è¡ãªãããå Žåã«éã
ãªãããšã§ãã£ãŠããããã¯èšèªã®æ©èœã§ã¯ãããŸããã
ãexit()颿°èªäœããã確å®ã«ã¡ã¢ãªãè¿ãããã«ãå®è£
ãããŠãã
ãªããã確å®ã«ã¡ã¢ãªãè¿ããªããå®è£
ãéžæããããšãå¯èœãªã¯ã
ã§ãããããã»ã¹çµäºæã«OSãããã»ã¹ã®äœ¿ã£ãŠããã¡ã¢ãªãèªåçã«
éæŸããæ©èœãæã£ãŠããã°ãåŸè
ã®ãããªèšèªä»æ§ãšããŠãå®è£
ã
ãã€ãŸããexit()åŸã«ã¡ã¢ãªéæŸããããã©ããã¯ãCã®å®è£
ã«äŸå
ããŠããããOSã®æ©èœã«äŸåããŠããããã§ãã
+---------------------------------------------------------------------+
| From : Dairyo Gokan ( åŸç¥ å€§éµ ) |
| Org. : Hitmark Computer Corporation ( ãããããŒã¯ã³ã³ãã¥ãŒã¿ ) |
| Adrs : 13256 Northup Way Suite 3, Bellevue WA 98005 |
| TEL:425-649-8808 FAX:425-649-9001 mailto:na...@can.bekkoame.ne.jp |
+---------------------------------------------------------------------+
> ããªãã ãååã®èžãè¿ãã£ãŠ(T_T)æ°ãããŸãã ...
ãã®å²ã«ååã®ææãåæ ãããŠãªã(T_T)ã®ã¯ãªã?
> ããANSI-Cãã§ã¯èŠæ Œæºæ ã®å®è£
ãšããŠããOSãäžã§çšŒåããããšã
> æ±ããŠããŸããïŒããŸããOSãã®å®çŸ©ãšã¯ïŒ
ååãåºãŠãã話ã§ããååã®ã¹ã¬ãããèŠæ Œæžèªãã§ãã ããã
> ããANSI Cãã§ã¯ãmalloc()颿°ããOSãããã¡ã¢ãªãååŸããããš
> ãšéå®ããŠããã®ã§ããïŒ
ååãåºãŠãã話ã§ããååã®ã¹ã¬ãããèŠæ Œæžèªãã§ãã ããã
> ãexit()ã®ä»æ§ã¯ãããã°ã©ã ã®çµäºã宣èšããmain()ã®åŒã³åºãå
> ã«å¯ŸããŠexit()ã®åŒæ°ãšããŠæž¡ãããå€ãè¿ãã ãã ãšæããŸãã
ã¡ãããŸããã仿§ã¯ããã ããšãã£ããããªãåœãŠæšéããã«ãŸãèŠæ Œæžèª
ãã§ãã ããã
åç°æŠåž
> ååãåºãŠãã話ã§ããååã®ã¹ã¬ãããèŠæ Œæžèªãã§ãã ããã
è£è¶³: ååã®ã¹ã¬ãããèªãã§ãªãäººã¯æçš¿ãããªãšããæå³ãããªãã§ãã
ååã®ã¹ã¬ããã«åå ããŠãã«ããããããããªãã§åãããšãåãã£ããèž
ãè¿ãããšããã®ïŒ ãšããäºã
åç°æŠåž
In article <959jcq$mbl$1...@ns.src.ricoh.co.jp>
oh...@src.ricoh.co.jp (Junn Ohta) writes:
> free()ãOSã«ã¡ã¢ãªãŒãè¿ããšã¯éããªãã®ã ãããã
> ãããã¡ã¢ãªãŒããã¡ããšåãæ»ãã®ããANSI Cããã¡
> ããšåãOSãã®åœç¶ã®åããã ããã§ããã
ANSI C èŠæ Œ (æ£ç¢ºã«ã¯ããŒããèªãã ã®ã¯ JIS X 3010 ã ãã©...)
ãèšåããŠããã®ã¯ããOSãã§ããªããŠãããã¹ãç°å¢ãã§ãã
ã§ãexit() 颿°ã®èª¬æã«ã¯ããå¶åŸ¡ããã¹ãç°å¢ã«åŸ©åž°ãããããš
æžããŠãããŸããã©ããã®åŸãã¹ãç°å¢ãã©ããã¹ããã¯ãèŠæ Œã«ã¯
æžããŠãããŸããã(æžãå¿ããããã¢ããªããŠãC èšèªã®èŠæ Œã®
ç¯å²å€ã ããããããŠæžããªãã£ããã§ãã念ã®ããã)
ã€ãŸããåœè©²ããã°ã©ã ãå床å®è¡ã§ããå¿
èŠããªãããå¥ã®
ããã°ã©ã ãèµ·åã§ããå¿
èŠããªãããããã©ããããå¶åŸ¡ãæ»ã£ãŠ
ãããããã·ã³ãççºãã¡ãã£ãŠãèŠæ Œäžã¯æ§ããªãããã§ãã
ãã¡ããããµã€ïœã¯ leak ããªãããšãæåŸ
ããŸãããããã¯
ãããŸã§ quality of implementation issue ã«éããŸããã
ã»ã
<956i03$as7$1...@news01bj.so-net.ne.jp>ã®èšäºã«ãããŠ
kat...@ka2.so-net.ne.jpããã¯æžããŸããã
>> ãã®ãæå³ç¡ããã®æ ¹æ ãå°ããŠã¿ãŸãããã
>> éåžžã«é«ã確çã§ UNIX ãåºãŠããŸãã
äœãšèšããŸãããWin32 ããªããªãåºãŠæ¥ãªããšãããã
Windows ããã°ã©ãã®äŒèª¬äœè³ªãåŠå®ã«ç©èªã£ãŠãããã
ãªæ°ãããã®ã§ããããšãããããã§ãããã»ã¹çµäºã§ã¡
ã¢ãªãéæŸãããç°å¢ã« Win32 ãä»ãå ããŠãããŠãã
ãŠãã ãããããŸãã« Windows ãåã...
# çµã¿èŸŒã¿ã®ããšã¯ããç¥ããªãã§ãã
>> > # mallocããã ãããŠãæ»ãã§ããCGIãªããããããŸããã
>>
>> ããã CGI ã®ãã°ãšèšããªããšãããªã©æ¶ãåºãŸãã
ããŒããããã°ã©ãããã®ç°å¢ãªã OK ã§ãããšæèã
ãŠããã®ãªããããã¯ãã°ãšã¯èšããªãããããªãã§ãã
ãã? ç§»æ€æ§ãäœãã ãã§ã
ç§»æ€æ§ãäœããšã¯ãã°ã®ããããšã§ãããšããããšãªã®
ã§ããããã°ãªã®ãããããªãã
>> free ãããšèªçããåŠçç³»ãããããã§ããïŒïŒïŒ
ããããããã°ã©ã ãæžãåŠçãªãå±
ãŸã(^^; ããç°
å¢ã ãšïŒéã« free ããŠãã¯ã©ãã·ã¥ããªãã®ã§ãããã
ãã linux ãªã©ã«æã£ãŠããŠã
ãå çãããã°ã©ã ãçµäºããçŽåã«ã¯ã©ãã·ã¥ããŸãã
ãšèŠæžã«æºã¡ã衚æ
ã§ã®ããŸãã®ã§ãããŸããããããã
ãããé 匵ã£ãŠãè¯ããã€ãªãã ãã©(^^;;;
# ããŸã·ãŒãºã³ãããªã...
--
Email: oka...@cs.ehime-u.ac.jp
free()ããŠããªãŒã¯ããç°å¢ã ãš
ãfree()ããŠããã®ã¡ã¢ãªé åã¯malloc()åºæ¥ãªãã
ã§ãããã
ã§ã¯ãfree()ãããå床mallocåºæ¥ãããã«ãªãã
ãšå®çŸ©ãããŠãã¯ããªã®ã§
ïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšã¯ãããªãã®ã§ã¯ïŒ
ãããªããšã¯ãªãã§ãã
# ãªãã»ã©ãsugiharaããã¯ããã§åéããããŠããã®
# ãããããªã以äžã®èª¬æã§çŽåŸããŠããããã...ã
UNIXã§æåã«æäŸãããmallocã€ã³ã¿ãŒãã§ãŒã¹ã¯æ¬¡ã®
ãããªãã¶ã€ã³ã§å®è£
ãããŠããŸããã
# ANSI Cã®mallocã€ã³ã¿ãŒãã§ãŒã¹ã®ä»æ§ãããã®ãã
# ãªå®è£
ãæ³å®ããŠæžãããããã°ã©ã ãããããªåäœ
# ãèµ·ãããªãããã«äœãããŠããŸããã
(a) mallocã€ã³ã¿ãŒãã§ãŒã¹ã¯ç¬èªã®ç©ºãã¡ã¢ãªãŒããŒ
ã«ã管çããŠããã
(b) malloc()ã¯èŠæ±ãããã¡ã¢ãªãŒããã®ã¡ã¢ãªãŒããŒ
ã«ããå²ãåœãŠãŠè¿ããã¡ã¢ãªãŒããŒã«ã«ç©ºããè¶³
ããªããã°OSããã¡ã¢ãªãŒãããã£ãŠã¡ã¢ãªãŒããŒ
ã«ãæ¡åŒµããã
(c) free()ã¯æž¡ãããã¡ã¢ãªãŒããã®ã¡ã¢ãªãŒããŒã«ã«
è¿ãã
(d) mallocã€ã³ã¿ãŒãã§ãŒã¹ã¯ãã®ã¡ã¢ãªãŒããŒã«ãOS
ã«ããããè¿åŽããããšãæåŸ
ãããŠããªãããã
ã»ã¹ãçµäºãããšãã«OSãåæã«ååããã
ãããããã¶ã€ã³ã§äœãããmallocã€ã³ã¿ãŒãã§ãŒã¹ã§
ã¯ããfree()ããŠããªãŒã¯ãããå¯èœæ§ãããã®ã¯(d)
ã®ååã«å€±æãããšãã ãã§ããäžæ¹ãfree()ããã¡ã¢
ãªãŒãmalloc()ã§ããªããã®ã¯(a)ïœ(c)ã®æµãã«åé¡ã
ãã£ããšãã§ãããã®ãµãã€ã®äºè±¡ã¯ç¬ç«ãªã®ã§ã
> free()ããŠããªãŒã¯ããç°å¢ã ãš
> ãfree()ããŠããã®ã¡ã¢ãªé åã¯malloc()åºæ¥ãªãã
ãšããå æé¢ä¿ã¯ãå°ãªããšããããããã¶ã€ã³ã§å®è£
ãããmallocã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ååšããªãããšã«ãª
ãã§ãããã
In article <95amqu$vft$1...@csgw2.cs.ehime-u.ac.jp>
oka...@cs.ehime-u.ac.jp (Takuya OKAHISA) writes:
> # çµã¿èŸŒã¿ã®ããšã¯ããç¥ããªãã§ãã
ç§ãæè¿ä»äºã§äœ¿ã£ãŠããç°å¢ã§ã¯ free ããé åã¯å床 malloc ã§ååŸå¯èœ
ã§ãã, ããã»ã¹ãçµäºããããšãæ³å®ããŠããªãããåŸå§æ«ã¯å®è£
ããŠãã
ãŸãã. ã§,
> ãå çãããã°ã©ã ãçµäºããçŽåã«ã¯ã©ãã·ã¥ããŸãã
çµäºããªããšããæããããŸãã :-)
# åå ã
#
# > ïŒéã« free
#
# ãªããã¡ãã®ç°å¢ã§ã¯äºåç®ã® free (確ã undefined behavior) ã§å±¥æŽã
# 衚瀺ã㊠panic ããŸã.
--
Kazuo Fox Dohzono / doh...@hf.rim.or.jp
[12],(6,9),0,0,2
(4/1449/3742)
>> free()ãOSã«ã¡ã¢ãªãŒãè¿ããšã¯éããªãã®ã ãããã
>> ãããã¡ã¢ãªãŒããã¡ããšåãæ»ãã®ããANSI Cããã¡
>> ããšåãOSãã®åœç¶ã®åããã ããã§ããã
>ANSI C èŠæ Œ (æ£ç¢ºã«ã¯ããŒããèªãã ã®ã¯ JIS X 3010 ã ãã©...)
>ãèšåããŠããã®ã¯ããOSãã§ããªããŠãããã¹ãç°å¢ãã§ãã
ISO:IEC 9899 ã§ã¯ã
In a freestanding environment (in which C program
execution may takeplace whithout any benefit of an operating
system), 以äžçç¥
ãšãoperating system ã«ãèšåãããŠããŸãã
ïŒ JIS X 3010 ã¯æå ã«ãªãã®ã§åãããŸãã
>ã€ãŸããåœè©²ããã°ã©ã ãå床å®è¡ã§ããå¿
èŠããªãããå¥ã®
>ããã°ã©ã ãèµ·åã§ããå¿
èŠããªãããããã©ããããå¶åŸ¡ãæ»ã£ãŠ
>ãããããã·ã³ãççºãã¡ãã£ãŠãèŠæ Œäžã¯æ§ããªãããã§ãã
>ãã¡ããããµã€ïœã¯ leak ããªãããšãæåŸ
ããŸãããããã¯
>ãããŸã§ quality of implementation issue ã«éããŸããã
確ãã«ããã§ããããã®ãããªåŠçç³»ã¯éåžžã«äœ¿ãé£ãã§ããããã
malloc() ã§ã¡ã¢ãªãŒãç²åŸããŠããç¶æ
ã§ç°åžžçµäºããŠããŸããšã
ïŒOS ã§ã®ïŒã¡ã¢ãªãŒãªãŒã¯ãèµ·ããŠããŸãããšã«ãªããŸãã
ã©ã€ãã©ãªãŒãïŒããã°ã©ããŒã«èŠããªã圢ã§ïŒmalloc() ã䜿ã£ãŠã
ãå ŽåããããŸãããããmalloc() ã䜿ã£ãŠããªãããã°ã©ã ã ãã
å®å¿ããšããããšããªãã§ããã
ç§ã¯ãããã°ç¡ãã§ãäžçºã§ããã°ã©ã ãæ£åžžã«åäœããããªããŠããš
ã¯ã§ããªãã®ã§ããã®ãããªåŠçç³»ã¯äœ¿ããããªãã§ããã
ïŒä»ã®ããã°ã©ã ã§è§£æŸã§ãããªãœãŒã¹ãæ®ãã®ã¯ææ
¢ã§ããŸããããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> UNIXã§æåã«æäŸãããmallocã€ã³ã¿ãŒãã§ãŒã¹ã¯æ¬¡ã®
> ãããªãã¶ã€ã³ã§å®è£
ãããŠããŸããã
ã»ã»ã»ä»¥äžç¥ã»ã»
> > free()ããŠããªãŒã¯ããç°å¢ã ãš
> > ãfree()ããŠããã®ã¡ã¢ãªé åã¯malloc()åºæ¥ãªãã
> ãšããå æé¢ä¿ã¯ãå°ãªããšããããããã¶ã€ã³ã§å®è£
> ãããmallocã€ã³ã¿ãŒãã§ãŒã¹ã§ã¯ååšããªãããšã«ãª
> ãã§ãããã
ãšããããšã§ãããã¯ããããããã«éå®ãã話ã§ããã
ïŒå€ãã®ïŒ¯ïŒ³ããšåãã¹ã¿ã€ã«ã ãšããããŸãã
ã®èŠæ Œã«
ããmalloc()ã§ååŸããã¡ã¢ãªãããã¯ã¯ããã»ã¹ã®çµäºãšãšãã«éæŸããããã
ãšã¯ãªãã®ã§ã
malloc()ã§ç¢ºä¿ããã¡ã¢ãªãããã¯ãããã»ã¹ãçµäºããåŸã
ååšãã€ã¥ãããšããŠãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšãããã®ã§ã¯ïŒ
ïŒããããç°å¢ãè¯ããšãããããšããšããããã§ã¯ãªãã§ãã
ãšããã
ããmalloc()ã§ååŸããã¡ã¢ãªãããã¯ã¯ããã»ã¹ã®çµäºãšãšãã«éæŸããããã
ãšããèŠå®ãã«ãããããããã®ãããªèª¬æãæ°ã«å
¥ããªãã ãã§ãã®ã§
ïŒïŒŸïŒŸïŒïŒ
"MAEDA Atusi (åç°æŠåž)" wrote:
> å
ã
FAQã«ã¯å
¥ã£ãŠããã§ãããã
> http://lagendra.s.kanazawa-u.ac.jp/ogurisu/manuals/C-faq/C-faq-07.html#7.24
ããïœã£!?ãfj.comp.lang.c ã® FAQ ãæãã®ã?ã
ãšãåã³åãã§èŠã«è¡ã£ãŠããŸããŸããã
.... comp.lang.c ã® FAQ ã§ããã(-_-;
comp.lang.c FAQ ã¯çããããã¡ãã¡ã§ç¿»èš³ãããŠããŠã
æ€çŽ¢ã§åŒã£ãããäžäœ2ã€ãããã¯èªãŸããŠããã ããäºãæããŸãã
ã§ãããã«ãã€ã³ã¿ã«å²ããŠããåéã«æ¯ã¹ãŠmalloc&freeã®æ±ãã¯ã
ããŸãã«ãã£ããªãæããŸãã
åç°(æŠ)ãããäžèšã®æ§ã«ãã£ããããšããäºã¯
ãcomp.lang.c FAQ ã«æžããŠãã以äžã®æ
å ±ã¯fjã§ã¯åºãŠããªãã
ãšããäºãªã®ãããããªãã®ã§ãããããã ãçãäžãã£ãã®ã§ããã
ç·æ¬ãšãããã®ãæã£ãŠãè¯ããããªãããšã¯æããŸãã
# äœãããããå§æ«ã®å¿ããšãã£ããããªã
# æ¥æ¬çãªã€ãºã ãèæ¯ã«æããããªæ°ãããŸãããã
# ãã®èŸºãå«ããŠãã©ãªãã....
# ....ãããŸã§ä»äººé Œã¿ãªç§ã(^^:
--
ç«¹æ¬ è¡ ãœããŒ(æ ª)PNC,PVC,DIéšé1éš
ãšããããåå²ãåœãŠããããããšããŠããæç¹ã§ã¯ãŸ
ã ãããªãããªãŒã¯ããçºçããŠããªãããã§ããã ã
ãããªãŒã¯ããŠããã®ã«åå²ãåœãŠããšããç¶æ³èªäœã«
æå³ããªãã§ããã
> ãšããããšã§ãããã¯ããããããã«éå®ãã話ã§ããã
éããŸããUNIXã«éå®ãã話ã§ã¯ãªãããšããããšã瀺
ãããã«ããããæžããã®ã§ãã...ã
> malloc()ã§ç¢ºä¿ããã¡ã¢ãªãããã¯ãããã»ã¹ãçµäºããåŸã
> ååšãã€ã¥ãããšããŠãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšãããã®ã§ã¯ïŒ
ãANSIæºæ ãã§ã¯ãªããŠãANSIãšã¯ç¡é¢ä¿ãã§ããã
> ãšããã
> ããmalloc()ã§ååŸããã¡ã¢ãªãããã¯ã¯ããã»ã¹ã®çµäºãšãšãã«éæŸããããã
> ãšããèŠå®ãã«ãããããããã®ãããªèª¬æãæ°ã«å
¥ããªãã ãã§ãã®ã§
> ïŒïŒŸïŒŸïŒïŒ
ãããã説æãããã€ããã¯ãªãã®ã§ãããç§ã®èª¬æã®
ã©ã®éšåãããã§ãã?
ç§ãããããã®ã¯
ã»ANSI Cã®ç°å¢ã§
ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
ãšããããšã ãã§ããããšã¯æèã§ãã
Takemoto,Satoshi <take...@cv.sony.co.jp> wrote in message news:3A792720...@cv.sony.co.jp...
> 竹æ¬ã§ãã
ïŒ
> ãcomp.lang.c FAQ ã«æžããŠãã以äžã®æ
å ±ã¯fjã§ã¯åºãŠããªãã
> ãšããäºãªã®ãããããªãã®ã§ãããããã ãçãäžãã£ãã®ã§ããã
> ç·æ¬ãšãããã®ãæã£ãŠãè¯ããããªãããšã¯æããŸãã
>
> # äœãããããå§æ«ã®å¿ããšãã£ããããªã
> # æ¥æ¬çãªã€ãºã ãèæ¯ã«æããããªæ°ãããŸãããã
> # ãã®èŸºãå«ããŠãã©ãªãã....
> # ....ãããŸã§ä»äººé Œã¿ãªç§ã(^^:
ãããããŠã»ã»ã»ãç§ã®ãã®å¿ã«åŒã£ããã£ãŠãããªãŒã¯ã£ãœã
代ç©ã free ããŠããããšãïŒãããã¯ããç§ã®ãã®è©±é¡ã«é¢ã
ãå¿ã®ããã»ã¹ã exit ããŠããããšãïŒ
ãã£ã±ãèªåã§ free ããã exit ããŠã¿ãã®ããã£ã¡ãããã
ã§ã¯ãªããããä»äººã« kill -KILL ãããŠè³æ»ãããããã倧å€
ã ãã(^^;;;;;;;;;;;;
--
Narita Takaoki @A.I.SOFT,INC.
ãïŒïŒåéã§æ±ºæããçãçç±ãæ·»ããã
ãã§ã¯ã
--
Hiroshi Toyoshima mailto:hiroshi@t_h_r_o_w.s_p_a_m.lib.bekkoame.ne.jp
> ã§ãããã«ãã€ã³ã¿ã«å²ããŠããåéã«æ¯ã¹ãŠmalloc&freeã®æ±ãã¯ã
> ããŸãã«ãã£ããªãæããŸãã
ããŒããããã§ããïŒ 5ç« ãã«ãã€ã³ã¿20åã7ç« ã¡ã¢ãªå²ãä»ãã®ãã¡
malloc/free/allocaã®ããããåºãŠããã®ã¯15åããŸããããªã«å·®ã¯ãªãæ°ã
ããŸãã
> åç°(æŠ)ãããäžèšã®æ§ã«ãã£ããããšããäºã¯
> ãcomp.lang.c FAQ ã«æžããŠãã以äžã®æ
å ±ã¯fjã§ã¯åºãŠããªãã
ãããŸã§äžè¬åããã€ããã¯æ¯é ããããŸããã(^^;)ã
ä»åã«éã£ãŠèšãã°ãç§ãšããŠã¯ãã®FAQã®ç 以äžã®å
容ã¯çµå±åºãªãã£ãã
ãããªãããšæããŸãã
> ãšããäºãªã®ãããããªãã®ã§ãããããã ãçãäžãã£ãã®ã§ããã
> ç·æ¬ãšãããã®ãæã£ãŠãè¯ããããªãããšã¯æããŸãã
ç·æ¬ã¯ããŠãããããªãã§ãã? äœåºŠãäœåºŠã(ç¬)ã
;;; çæ³¢å€§åŠ é»åã»æ
å ±å·¥åŠç³»(åŠè¡æ
å ±åŠçã»ã³ã¿ãŒ)
;;; åç°æŠåž (MAEDA Atusi) ma...@cc.tsukuba.ac.jp
>> ãšããäºãªã®ãããããªãã®ã§ãããããã ãçãäžãã£ãã®ã§ããã
>> ç·æ¬ãšãããã®ãæã£ãŠãè¯ããããªãããšã¯æããŸãã
>ç·æ¬ã¯ããŠãããããªãã§ãã? äœåºŠãäœåºŠã(ç¬)ã
竹æ¬ãããä»°ãããããšã¯ã
In article <95amqu$vft$1...@csgw2.cs.ehime-u.ac.jp>,
oka...@cs.ehime-u.ac.jp (Takuya OKAHISA) writes:
>ãªæ°ãããã®ã§ããããšãããããã§ãããã»ã¹çµäºã§ã¡
>ã¢ãªãéæŸãããç°å¢ã« Win32 ãä»ãå ããŠãããŠãã
>ãŠãã ãããããŸãã« Windows ãåã...
ãå
¥ã£ã FAQ ãã»ãããšããããšã§ããªãããšã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
ãšããããååã®è°è«ã§ã¯ãfree()ããªããšãªãŒã¯ãã
OSã®å®äŸãªããŠã®ã¯ã²ãšã€ãåºãŠããªãã£ããã§ãããã
ãŸãšãããŸã§ããªããã§ããWin32ã ãããWin16ã ãã
ãMS-DOSã ãããã¿ããªå€§äžå€«ã
malloc()/free()ã§ãªãŒã¯ããäŸãšããŠåºãŠããã®ã¯ç¹
æ®ãªçµã¿èŸŒã¿ç°å¢ã ãã§ããã¡ããANSI Cã§ã¯ãªãã®ã
ããååãmalloc()/free()ã ã£ãã ãã®ããšããã以
å€ã¯ã©ããäœã¡ããAlloc()/äœã¡ããFree()ã®ãããã§ã
malloc()/free()ã§ã¯ãããŸããã§ããã
> ãexitãfreeçžåœã®åäœãè¡ããå¿
èŠãªã©ã©ãã«ããªã
> ããšã¯ååã¡ãããšèª¬æããã®ã§ããã©ãã
>
> ä»åã®è©±ã¯
>
> (1) ANSI Cã®èŠæ Œç¯å²å
ã§ã¯malloc()ããã¡ã¢ãªãŒãæ
> 確ã«OS
ã¯ããããããªãã
ç§ã調ã¹ãç¯å²ã§ã¯ malloc / free 㯠OS ãåæãšããŸããã
ãããâ
èŠæ Œæžããã ANSI C ãšãããã«èšã誰ããããšéã£ãŠã
ã³ã¡ã³ããããã«ãããããªäœã話ã§ã¯ç®žã«ãæ£ã«ãããããŸããã
ãã£ãããã¹ãªããšããããä»ã®ããªãã¯éããŸãããã
å
èšäºã®ç°å¢ã«éå®ãããªã LIBC*.LIB/MSVCRT.DLL ã§ããããã
çªç¶ãOSãã«ãªã£ãŠãããšããã«ãæ£æçãªãã®ãæããŸãã
ãã¡ãã«ãèšãããããšã¯ãããŸããã
å
容以åã®æ¬ é¥ãçŽããŠããŠé ãã®ãå
ã§ãã
èŠæ Œã®äžã«ã¯åºãŠããŸãããã§ãmalloc/freeãšããã€
ã³ã¿ãŒãã§ãŒã¹ã¯OSã®ååšãåæãšããŠããããããã
ããã仿§ã«ãªã£ãŠããããšãã話ãã ããããã§ã¯å
è«ã«ãªã£ãŠãŸããã
ååãããã ã£ããã©ç岡ãããŠã°ããããäººã®æžãã
èšäºãçè§£ããŠãªãã®ãã
> å èšäºã®ç°å¢ã«éå®ãããªã LIBC*.LIB/MSVCRT.DLL ã§ããããã
éãã§ããããªãŒã¯ãããã©ããã¯OSã«ãšã£ãŠã®è©±ãå®
è¡æã©ã€ãã©ãªãŒãããããŸããã
ãã£ããæåŸ
ããã®ã§ãããã
ãã®ãã竹æ¬ãããäžå¿ã«ãªã£ãŠäœããšããã®ã¯ã©ãã§ããã? :)
> ã§ãããã«ãã€ã³ã¿ã«å²ããŠããåéã«æ¯ã¹ãŠmalloc&freeã®æ±ãã¯ã
> ããŸãã«ãã£ããªãæããŸãã
ãã£ã𿥿¬äººã®å¥œã¿ãªã®ã§ããã :)
malloc&freeã®ã»ãããã«ãã€ã³ã¿ãŒãããã
ãšããããã§ãæ¥æ¬äºº...ãšãããfjãŠãŒã¶ãŒåãã®FAQãäœã£ãŠãã ãã > 竹æ¬
ãã
> # äœãããããå§æ«ã®å¿ããšãã£ããããªã
> # æ¥æ¬çãªã€ãºã ãèæ¯ã«æããããªæ°ãããŸãããã
ã§ãBASICã§ãDIMãã§ç¢ºä¿ããã®ãçµäºæã«è§£æŸããããã²ãšã¯èŠãããšãªããã
(ãã?MSãããªãç°å¢ã§ã¯ããã¯å®£èšæã§ãã£ãŠéäžã«ã¯æžããªããã§ããã£ã?)
# ãšãããããã®ãmalloc&freeãã®åã1ä»¶åã ãã§ãããã®ã§ã
# ãéå»ã®èšäºãèªããã§ã¯ãªãããã®æç« ãèªããã§æžããããª
# (ãšããããçŸæç¹ãŸã§ã®ãã®ã§ãããã®ã§)ããŸãšããããã£ãã»ãã
# ããã®ã§ã¯?
ã_ã ____________________________
ãã»ã» ã vo...@merope.pleiades.or.jp
( ° )ïœ æ¥äžéšéœäž
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ã¹ã¬ãããRe: (FAQ listã)竹æ¬ãããäžå¿ã«ãªã£ãŠäœããšããã®ã¯ã©ãã§ããã?ãã§ã®
vo...@merope.pleiades.or.jpæ°ã®çºèš <void-02020...@newshost.ryukyu.ad.jp> ããåŒçš
>> ãã£ããæåŸ
ããã®ã§ãããã
>> ãã®ãã竹æ¬ãããäžå¿ã«ãªã£ãŠäœããšããã®ã¯ã©ãã§ããã? :)
(ç¥)
>> ãã£ã𿥿¬äººã®å¥œã¿ãªã®ã§ããã :)
>> malloc&freeã®ã»ãããã«ãã€ã³ã¿ãŒãããã
>> ãšããããã§ãæ¥æ¬äºº...ãšãããfjãŠãŒã¶ãŒåãã®FAQãäœã£ãŠãã ãã > 竹æ¬
>> ãã
(ç¥)
>> # ãšãããããã®ãmalloc&freeãã®åã1ä»¶åã ãã§ãããã®ã§ã
>> # ãéå»ã®èšäºãèªããã§ã¯ãªãããã®æç« ãèªããã§æžããããª
>> # (ãšããããçŸæç¹ãŸã§ã®ãã®ã§ãããã®ã§)ããŸãšããããã£ãã»ãã
>> # ããã®ã§ã¯?
仿17æ¥ã§ãä»¶ã®thredçºè¶³ããããã§ãã1åšå¹Žãè¿ããŸããã
queenãæŒã£ãŠãçŸæç¹ã©ããããthredéå§ããããã£ãã®2é±
éåããããå
ã«ãèªåãããå æžã§ãã cut & paste ããŠã
å³ã
ãã edit ãããŠããã ãããã®ãäžèšã«ã€ããŸãã
äœãã®è¶³ãã«ãªãã°å¹žãã§ãããç§ã®æ³šæåäžè¶³ã«ãããããã
çºçããŠããŸãããã倧å€ç³ãèš³ãããŸããã
---------------------------------------------------------- ãããã
æåã®è³ªå
Q. Cèšèªã®æ¬ãã«ã¯ãããŠãmallocããã¡ã¢ãªãŒããã䜿ããªã
ãªãæŸã£ãŠããã°çµäºæã«èªåçã«è§£æŸãããã®ã§æç€ºçã«
freeããªããŠãè¯ããšæžããŠããã®ã§ãããå
æ¥ããéèªã
èŠããšæç€ºçã«freeããªããšã¡ã¢ãªãŒãªãŒã¯ã«ãªããšæžãã
ãŠããŸãããã©ã¡ããæ£ããã®ã§ããããã
<38AB7D...@geocities.co.jp>
æåã®åç
A. ãŸãšããªOSãªããmalloc()ããåŒã°ããã·ã¹ãã ã³ãŒã«
ã§ç¢ºä¿ãããã¡ã¢ãªãŒã¯ããã°ã©ã ã®çµäºæã«ã¯è§£æŸã
ããã¯ãã§ãããªãããšãããšãOSããã®ããã«äœã£ãŠ
ãããªããšãããããªåé¡ãèµ·ããŠå°ãããã§ãããã
ãã£ãŠãéœã«free()ããå¿
èŠã¯ãªãããšããã®ãäžè¬è§£
ã§ãã
<88g10k$j01$1...@ns.src.ricoh.co.jp>
ããã°ã©ãã³ã°ã¹ã¿ã€ã«ãšããŠïŒœ
A1. çµäºæã«è§£æŸããããã©ããã¯OSã®æ©èœæ¬¡ç¬¬ã§ãããé·æéåã
ç¶ãããœãããæžããšããããªããšãããããããããšã«ãªãã®
ã§ãå¿
ãè§£æŸããç¿æ
£ãã€ããã¹ãã§ãã
<88fvdm$b...@utogw.gssm.otsuka.tsukuba.ac.jp>
A2. ããããç¿æ
£ã身ã«ã€ããããšã®æ£ããã¯ãšããããšã
ãŠãäœã§ãå®å
šåŽã«æ¯ã£ãŠããã°åé¡ãªããšããŠã·ã¹ã
ã ãçè§£ããããšããªãããããã¯çè§£ããã«ããŸããŠ
ããŸãå§¿å¢ã«ãåé¡ãããããªãããšç§ã¯ã€ãã¥ãæã£
ãŠããã®ã§ããã
ã§ããããã質åã«ã¯ãã£ã±ããã·ã¹ãã ããã¡ããšã
ãã©ãã¯ã¿ãŠããããã©ãã ããã£ãŠããŒã£ã¡ãã ãã
ãããšçããã¹ããªãã§ãããã...ã
<88gghd$naa$1...@ns.src.ricoh.co.jp>
A3. åºæ¬çã«ã¯ãããªããªã£ãã free ã§ãããçµæ§ãã€ããå
å©çšåºæ¥ãªãããšãèããã®ã§ãå®éã«ã¯ãããªã«åçŽ
ã«ãã€ããããã§ã¯ãããŸãããçµæ§éªšãŸã§ããã¶ãããšã
ãæ¹ãããå Žåã«ãã£ãŠã¯ãã¢ãã±ãŒã¿ã®èªäœãèæ
®ããŸã
ãããããªã«ããããšã§ã¯ãªãããªã
ããšãåºçŸ©ã®ãªãŒã¯ãé²ã泚æç¹ãšããŠãåºæ¬çã«äœ¿ãçµã
ã£ãã free ãå¿ãããã®ããããŸããããã£ãšå€§åãªã®ã¯ã
å¶åŸ¡ã®æµãããªãŒã¯ããŠãããäœåŠãæŒããŠãããããå
ããæ§ãªãã®ã«èšèšããŠãããšããããšã®æ¹ãããã£ãšéèŠ
ã§ãããã©ã¡ãããšãããšãmalloc ãããåŸãªããªã£ãæã¯ã
ãã£ã¡ã®æ¹ã«æ³šæããã£ãŠããããã
ã©ããªã«æ³šæããŠããŠããäœåè¡ãæžããŠãããšã倧æµãªãŒ
ã¯ããïŒãããã¯ãªãŒããŒã©ã³ããäœããããïŒãã ããããã
ããããã©ãã§èµ·ãããåããæ§ã«èšèšãããšããã®ãããš
ããšã®åŽåãåæžããŠãããŸããããã¯ã¢ãžã¥ãŒã«å¥ã®ãã¹
ããªã©ãèŠéã«å
¥ããäžã§ã®è©±ã§ãã
<8a6tub$831$1...@epsongw6.epson.co.jp>
A4. ã©ããªãšãã«free()ãå¿
èŠãã¯ãããããŠã³ã«æ±ºãŸã£ãŠ
ããããã§ãããã«åŸã£ãŠæžããŠããã°å¿
èŠãªfree()ã¯
æžãããŠãäžèŠãªfree()ã¯æžãããŸããã
<8b2muk$16q$2...@ns.src.ricoh.co.jp>
ïŒ»èŠæ Œ(1)
A.èŠæ Œã§ã¯ãmalloc() ã§ç²åŸããé åã free() ã§è§£æŸããªããã°ãªã
ãªããã®ãããªèŠå®ã¯ãããŸãããèŠå®ãããŠããªã以äžãfree() ã§
è§£æŸãããããªããã¯ãããã°ã©ããŒã®èªç±ã§ãã
<KATE.00Fe...@yamato.trad.pfu.co.jp>
ïŒ»èŠæ Œ(2)
malloc() ã§å²ä»ããé åã OS ã«è¿ãããšã«ã€ããŠã¯ãèŠæ Œ(*)ã§ã¯äž
åè¿°ã¹ãŠããŸãããããã©ããããmalloc() ã§å²ä»ããé åãè§£æŸã
ãªããã°ãªããªããšãèŠå®ããŠããŸããã
* ISO/IEC 9899 ã JIS X 3010 ãªã©ã® C èšèªèŠæ ŒïŒä»¥äžåãïŒ
èŠæ Œã¯ãããã°ã©ã ã«å¯ŸããèŠå®ãšåŠçç³»ã«å¯ŸããèŠå®ã®äž¡æ¹ãå«ãã§
ããŸãããããã°ã©ã ã«å¯ŸããèŠå®ã®ããšã§ããããããããã«ããŠãã
ãæé»ã®ãã¡ã«å®ããããŠããããã®ã¯ãããŸããããããšãããªãã°ã
ããã¯èŠæ Œã®äžåã§ãã
malloc() ã§å²ä»ããé åãè§£æŸããªããã°ãªããªããšèŠå®ãããŠããªã
ã®ã§ããããè§£æŸããã«çµäºããããã°ã©ã ã§ã strictly conforming
program ã«ã§ããŸãã
conforming hoted implemetation ã¯ããã¹ãŠã® strictly conforming
program ãåãä»ããªããã°ãªããŸãããããmalloc() ã§å²ä»ããé
åãè§£æŸããã«çµäºããããã°ã©ã ãåãä»ããªããã°ãªããŸããã
åãä»ããçµæãããã°ã©ã çµäºåŸã«äœãèµ·ãããã¯èŠæ Œã®ç¯çå€ã§ãã
ãã®å®è£
ã®ç°å¢ïŒOS ãªã©ïŒã§èŠå®ãããã¹ãããšã§ãã
極端ãªè©±ãexit(0)ïŒmain() ãã return 0;ïŒä»¥å€ã§ã¯ãªããŒãããŠã
ãŸããããªç°å¢ã§ãã£ãŠããconforming hoted implemetation ãšãã
ããšã¯å¯èœã§ãã
ãããããã®ãããªç°å¢ãå®åšããŠããäºææ§ã®ããã« exit(0) ããª
ããã°ãªããªãããšããè°è«ã«ãªããªãã®ãšåæ§ã«ããäºææ§ã®ããã«
free() ããŠããããã°ã©ã ãçµäºããªããã°ãªããªãããšããè°è«ã«
ã¯ãªããŸããã
<KATE.00Fe...@yamato.trad.pfu.co.jp>
ïŒ»èŠæ Œ(3)
Q. ãšããã§ããäºææ§ãã§ã¯ãªããç§»æ€æ§ããèæ
®ããå Ž
åã§ã䞻匵ã«å€åã¯ãããŸããã?
A. ä»åã®ä»¶ã«é¢ããŠããã°ã
conforming hosted implementation 㯠strictly conforming
program ãäœåå®è¡ããããšããããŠã³ãããåäœãäžå®å®ã«ãªã£
ããããªããã®ã§ãã
ãšããä»®å®ã¯åççãªä»®å®ã§ãããšèããŠããŸãã®ã§ã䞻匵ã«å€åã¯ã
ããŸããã
<KATE.00Fe...@yamato.trad.pfu.co.jp>
ïŒ»è³ªã®æªãç°å¢ïŒœ
Q. å°ãªããšããfreeã䜿ãäºã«ããã䜿ããç°å¢ãå¢ããã®ãªãã
ç§»æ€æ§ãåäžãããšãããŸããfreeã䜿ã£ãŠã¡ã¢ãªãŒãéæŸã
ãããšã«ããã䜿ããªããªãç°å¢ã¯ããªããšæããŸããã
A. ãè³ªã®æªããå®è£
ã§ãããã°ã©ã ããŸãšãã«åãããã«
ããããã«ããã®ã€ã³ã¿ãŒãã§ãŒã¹ãæ¬æ¥æå³ããŠãã
èšèšææ³ãæ²ããŠå©çšããããšããã£ãŠãç§»æ€æ§ãåäž
ããããšãã£ãããã®ã§ãããã?
ãããããè³ªã®æªããå®è£
ã§ããã°ã©ã ããŸãšãã«åã
ãããã«ã¯ããã®å®è£
ã§èæ
®ãã¹ãåé¡(free()ã®ã»ã
ã«ããã£ãšããããããã§ããã)ãåãåããŠãæ¡ä»¶
ã³ã³ãã€ã«ãªã©ã§å¯Ÿå¿ãã¹ãã ãšæããŸããããã§ãã
ãç§»æ€æ§ã®é«ããããã°ã©ã ã§ã¯ãªãã§ãã?
ãããå€ãã®ç°å¢ã§åãåé¢ã®ããã°ã©ã ã(å¹çãç¡
èŠããŠ)ãã®ãŸãŸåããããšããã£ãŠããã°ã©ã ã®ãç§»
æ€æ§ãé«ãããšããèŠããã«ã¯è³æã§ããŸããã
<88o3qp$6ua$3...@ns.src.ricoh.co.jp>
exitã®èª¬æïŒœ
Q. exitã®èª¬æã«ã¯ãå
šãŠã®ã¡ã¢ãªãè§£æŸããããšã¯ãã
ããŠããªããšæãã®ã§ããã
A. æžãããŠããç°å¢ããããŸããæžãããŠããªããšããã°ã
ããã¯ããã»ã¹çµäºæã«OSãåŸå§æ«ãšããŠè¡ãã¹ãåŠç
ã®ã²ãšã€ã§ãã£ãŠããŠãŒã¶ãŒããã»ã¹ã®åŽã§è¡ãåŠçã§
ã¯ãªãããã§ãããã
ãexit()ãè¡ããšãã®ããã»ã¹ãå ããŠããã¡ã¢ãªãŒç©º
éã¯ãã¹ãŠOSã«è¿åŽãããããšããã®ãšåãã¬ãã«ã®è©±
ã§ããããexit()ã®èª¬æã«ããããæžãããŠããªããŠã
ããããªããšã§ã¯ãããŸããã
<88onmk$chu$1...@ns.src.ricoh.co.jp>
OSã«äŸå?
Q. free ããªããŠãã¡ã¢ãªãªãŒã¯ããªããšããã人ãããŸããã
ããã¯èªåã®äœ¿ãïŒUNIX ã NTïŒ ã«åã£ã話ã
ããŠãããããããªãã§ããïŒ
A. free()ãšããã®ã¯ããããOSã«ã¡ã¢ãªãŒãè¿åŽãããã
ã®é¢æ°ã§ã¯ãªããŠãmalloc()/free()ããã±ãŒãžã«ã¡ã¢
ãªãŒãè¿åŽããããã®é¢æ°ã§ãã
<88kdgt$2e2$1...@ns.src.ricoh.co.jp>
malloc 㯠freeãã仿§?
Q. ã§ã malloc 㯠free ããã仿§ãã®é¢æ°ã§ãã
A. ããã¯æ£ãããªãã®ã§ã¯ãªãã§ãã?
malloc()ãã·ã¹ãã ããã¡ã¢ãªãŒãããã£ãŠãã颿°ã§
ããããšã¯æ£ããã®ã§ãããfree()ã¯ãã®éããã颿°
ã§ã¯ãªãã®ã§ããfree()ã¯ãããããã®ããšã§malloc()
ãè¡ã£ããšãã«å確ä¿ãããã¡ã¢ãªãŒãçšæãã颿°ãš
ãšãããã»ããããã§ãããã
ã€ãŸãmalloc()ãšfree()ã¯å¯Ÿç§°ã§å¯Ÿçãªé¢ä¿ã«ãããã
ã§ã¯ãªããšããããšã§ãã
malloc()ãããã®ã¯ç¡æ¡ä»¶ã«free()ãã¹ãã ãšæããã
ãšã¯ããã®é察称æ§ã«æ°ã¥ããã£ã³ã¹ã奪ãããšã«ãã€
ãªãããŸãããã
# ãã¡ãããmalloc()ã§äœ¿ãçµãã£ãã¡ã¢ãªãŒã¯ãã®æ®µ
# éã§free()ããã®ãããç¿æ
£ã ãšããç¹ã«ã€ããŠã¯äœ
# ã®ç°è°ããããŸããã
<88h0ce$rgp$2...@ns.src.ricoh.co.jp>
å®è£ 
Q. èŠããã«ãfreeã䜿ããªãããã«ãã©ãã«ãèµ·ãã£ã
å Žåã¯ãããã°ã©ããŒã®è²¬ä»»ã ãšæããŸãã
A. ãããã»ã¹ã®çµäºåã«èªåã§ãã¹ãŠfree()ããã°OSã«ã
ã¹ãŠã®ã¡ã¢ãªãŒãè¿åŽããããšã«ãªãããšããmalloc()
/free()ã®å®è£
ã«ã¯ã©ããªãã®ãããåŸããèããŠã¿ãŸ
ãããå¯èœæ§ããããšããããããªãã®ã§ãããã
(1) malloc()ãšfree()ã¯ãã€ã¯OSã®ã¡ã¢ãªãŒç¢ºä¿/è§£æŸ
ã®ã·ã¹ãã ã³ãŒã«ããã®ãŸãŸåŒãã§ããã ãã
ããã§ã¯çްããã¡ã¢ãªãŒç¢ºä¿/è§£æŸã®ã¿ã€ãã³ã°ã§
ã·ã¹ãã ã³ãŒã«ãçºçããããã§ããŸã£ããéå¹ç
ã§ãããããè§£æŸã«free()ã䜿ã以äžãæ£ããè§£æŸ
ããããã©ããããã§ãã¯ããæ¹æ³ãååšããªãã
ãã§ãå±éºãã®ãããªãããããªåœ¢ã§ã·ã¹ãã ã³ãŒ
ã«ã«malloc()/free()ã®ç®ããã¶ãããšããã®ã¯ã
ã£ãŠã¯ãªããªãããšã§ãã
(2) malloc()ã¯å¿
èŠã«å¿ããŠå€§ããªåäœã§OSããã¡ã¢ãª
ãŒã確ä¿ããŠãããã现åãã«ããŠåŒã³åºãåŽã«è¿
ããfree()ã¯è¿ãããã¡ã¢ãªãŒããŸãšãŸã£ãåäœã«
ãªããšOSã«ãããè¿ãã
å¢çæ¡ä»¶ãååšããããšã«ãªãããã®å¢çã§çްãã
malloc()/free()ãç¹°ãè¿ããšå¹çãèœã¡ãŸããã
ã®ãšãã®å¹çã¯malloc()ãå
éšã§ã¡ã¢ãªãŒç®¡çãã
ãŠããåã ã(1)ããããã«æªããªããŸãã
(3) (2)ãšåãã ããfree()ã§ãã¹ãŠã®ã¡ã¢ãªãŒãè§£æŸ
ããããšãã ãOSã«ãããã®ã¡ã¢ãªãŒãè¿ãã
æ¬è³ªçã«(2)ãšåãã§ãã¡ã¢ãªãŒãã²ãšã€ã確ä¿ã
ããŠããªãç¶æ
ã§çްããmalloc()/free()ãç¹°ãè¿
ããš(2)ãšåãç¶æ
ã«ãªããŸãã
<88mle0$mnm$1...@ns.src.ricoh.co.jp>
é埳
Q. malloc()ãããã®ã¯free()ããã®ãåœç¶ã§ãã£ãŠã
ããã¯ã«ãŒã«ãšããŠå®ããªããã°ãªããªããfree()
ããªãã£ããšãã«ã©ããªãããªã©ãšèãããããŠã¯
ãããªãã®ã§ã¯ãªãã?
A. æè¡ãé埳ã«çœ®ãæããŠè«ããã®ã¯çŸå®³ãã£ãŠäžå©ãªã
ã§ãããããã»ããããã§ãããã
åå¥ã®ç°å¢ã§ã¯ã©ããªãã
Q. freeããã«çµäºãããšãåå¥ã®ç°å¢ã§ã¯ã©ããªãã?
A1. ããŸãŸã§åºãæ
å ±ããŸãšãããšãmalloc()ããã¡ã¢
ãªãŒãfree()ããã«çµäºããå Žåã
(a) UNIXãMS-DOSãWindows95/98/NTãªãã¡ã¢ãªãŒãªãŒ
ã¯ã¯èµ·ããªã
(b) ANSI Cãªãã¡ã¢ãªãŒãªãŒã¯ã¯èµ·ããªã
(c) (malloc()/free()ãšãã颿°ä»æ§ãã)ãŸãšããªOS
ãšãŸãšããªèšèªåŠçç³»ã®çµã¿åãããªãã¡ã¢ãªãŒãª
ãŒã¯ã¯èµ·ããªããšæåŸ
ããŠãã
(d) äžèšã®ãããã§ããªãç°å¢ã§ã¯ã¡ã¢ãªãŒãªãŒã¯ãèµ·
ããå¯èœæ§ããã(ãããfree()ãããããšãã£ãŠ
ã¡ã¢ãªãŒãªãŒã¯ãèµ·ããªããšã¯ä¿èšŒã§ããªã)
ãšãã£ããšããã§ããããã
<88qimd$1hu$1...@ns.src.ricoh.co.jp>
MS-DOSã§ã倧äžå€«?
Q. ç§ãUnixã§ããã°å€§äžå€«ãªã®ã¯ç¥ã£ãŠããŸããDOSãª
ããã ãšæªããããªãã§çµ¶å¯Ÿå®å
šãµã€ãã§äœã£ã¡ãããšæããªã
A. ãã€ã¯DOSã®å Žåã¯ãfree()ããã«çµäºããŠããŸã£ãŠã
ãŸã£ããå®å
šãªãã§ãã
DOSã¯640ïœ768KBã®ã³ã³ãã³ã·ã§ãã«ã¡ã¢ãªãŒãšããã
ã®ããã£ãŠããŠããã¹ãŠã®ããã»ã¹ã¯ãã®äžã§å®è¡ãã
ãŸãããã®ã³ã³ãã³ã·ã§ãã«ã¡ã¢ãªãŒã®å
é ã«ã¯DOSã®
ã·ã¹ãã ãããã€ã¹ãã©ã€ããŒãã³ãã³ãã€ã³ã¿ããªã¿
ãŒãªã©ãåžžé§ããŠããŠãããã°ã©ã ãå®è¡ãããšããã
ãé€ãã空ãã¹ããŒã¹å
šäœãã©ãããšããã»ã¹ã«æž¡ãã
ãŸããããã»ã¹ã¯ãã®å
éšãmalloc()ãªã©ã§èªç±ã«äœ¿ã£
ãŠããããã§ãã
ããã°ã©ã ãçµäºãããšããã®ããã»ã¹ã䜿ã£ãŠããå
é ã¢ãã¬ã¹ä»¥éã®ã¡ã¢ãªãŒã¯æç¡ãããããè§£æŸããã
ã·ã¹ãã ãåå©çšã§ããããã«ãªããŸããfree()ãããŠ
ããªãé åãããããé¢ä¿ãããŸããã
<88i8id$bi2$1...@ns.src.ricoh.co.jp>
ã¡ã¢ãªãŒãªãŒã¯ãæå³çã«èµ·ããã«ã¯ïŒœ
Q. éã«èšãã°ã¡ã¢ãªãŒãªãŒã¯ãæå³çã«èµ·ããããã«ã¯
ã©ãããã®ã§ããããã
(æå³çã«ãã³ã°ã¢ãããããŠåŒ·å¶çµäºãšãWindowsã®MMF
ãšãã§ãªããåã«mallocã䜿ãã ãã§æ£åžžã«çµäºããŠãã
éãã¡ã¢ãªãŒãªãŒã¯ãèµ·ããããšã¯ãªãã¯ãã ãšããã®ã
çæ§ã®è°è«ã®äž»æšã®ããã§ãã®ã§ã)
A. <38AFB2D7...@mail.ecc.u-tokyo.ac.jp> ã«ããã°ã
Windowsã®Win16 APIã§GlobalAlloc/GlobalFreeã䜿ãã
GlobalFreeãåŒã³å¿ããå Žå
ãããããã§ãããã ãmalloc()/free()ããã®APIãçŽ
æ¥åŒã³åºããããªã³ãŒããçæããåŠçç³»ããããã©ã
ãã¯äžæã§ãã
<88jtrm$898$1...@pooh.isoternet.org> ã«ããã°ã
malloc()çžåœã®ãã®ãå
±æã¡ã¢ãªãŒã®å²ãåœãŠãšç䟡
ã«ãªã£ãŠããOSããã
ããã§ããã®ç°å¢ã§free()çžåœã®é¢æ°ãåŒã³å¿ãããšã¡
ã¢ãªãŒãªãŒã¯ãèµ·ããå¯èœæ§ããããŸãããã ã峿Ÿã
ãã®èšäºã«ã¯ã¡ã¢ãªãŒãªãŒã¯ãèµ·ãããšæžãããŠããã
ãã§ã¯ãããŸããããŸããçšæãããŠãã颿°ã¯malloc
()/free()ã§ã¯ãªãå¯èœæ§ããããŸãã
<88opnc$3to$3...@newsjp.mbn.or.jp> ã«ããã°ã
çµã¿èŸŒã¿çšã®OSã§ã¯ãããŒãã®ç®¡çã¯å
šéšã¢ããªã±ãŒ
ã·ã§ã³åŽã§ãã£ãŠãããšèšãã¹ã¿ã³ã¹ã®ãã®ãå°ãªã
ãªã
ããã§ãããã®ç°å¢ã§free()çžåœã®é¢æ°ãåŒã³å¿ãããš
ã¡ã¢ãªãŒãªãŒã¯ãèµ·ãããã§ãããããçšæãããŠãã
颿°ã¯malloc()/free()ã§ã¯ãªãå¯èœæ§ããããŸãããŸ
ãããã®ãããªç°å¢ã§ã¯malloc()/free()ãANSI C仿§
ã«æºæ ããŠããå¯èœæ§ã¯ãªãããã§ãã
<88qimd$1hu$1...@ns.src.ricoh.co.jp>
---------------------------------------------------------- ãããŸã§
ããã¢ãŒãŠãŒãã¯æ
倧平ç·çã§ãããããããã仿§ããšä»°ããã
ãããããããšã¯å
·äœçã«ãã仿§ãã®ã©ã®éšåãæããŠãããã§
ããããããïŒ
ãã²ãã£ãšããŠããç¹å®ã®OSãåãã«äœãããéå®çãªã©ã€ãã©ãªã®
å®è£
ããæ±çšçãªã仿§ããšæ¡å€§è§£éãããŠããã§ãïŒ
ããã¡ããšãããžã«ã«ã«è©±ããŠããããžããš ...ã
-----------------------------------------------------------------------
> éãã§ããããªãŒã¯ãããã©ããã¯OSã«ãšã£ãŠã®è©±ãå®
> è¡æã©ã€ãã©ãªãŒãããããŸããã
-----------------------------------------------------------------------
ããexit()ããã°ãªãŒã¯ããªããã£ãŠä»°ããããã ãããåœç¶exit()
ãã®ãã®ã«ãªãŒã¯ãé²ãæ©èœãå«ãŸããŠããããšãšã仿§ãã«çã蟌ãŸ
ããŠãªããšãããããã¹ããïŒ
Junn Ohta wrote:
> fj.comp.lang.cã®èšäº<95c18i$dip$1...@news01dh.so-net.ne.jp>ã§
> kat...@ka2.so-net.ne.jpããã¯æžããŸããã
> > ç§ã調ã¹ãç¯å²ã§ã¯ malloc / free 㯠OS ãåæãšããŸããã
>
> èŠæ Œã®äžã«ã¯åºãŠããŸãããã§ãmalloc/freeãšããã€
> ã³ã¿ãŒãã§ãŒã¹ã¯OSã®ååšãåæãšããŠããããããã
> ããã仿§ã«ãªã£ãŠããããšãã話ãã ããããã§ã¯å
> è«ã«ãªã£ãŠãŸããã
OSãæžãã®ã«Cã䜿ã£ããšãã«ããã®Cã¯ãã©ããªOSäžã§
åäœããŠããã®ã§ããããïŒ
mallocã§åçã«å²ãåœãŠãã¡ã¢ãªããfreeã§è§£æŸããã®ã¯ã
次åã®mallocã§äœ¿çšã§ããããã«ããããã§ãããã
>> ç§ã¯WindowsNT4+VisualC++6ã§ããã°ã©ã ãäœã£ãŠãã
>> ã®ã§ãããfreeã䜿ããªãïŒã³ãŒãã£ã³ã°ãã¹ïŒæã¯
>> ã©ã®ããã«ãªããçåã«ãªããŸããã
ãã®ç°å¢ã®å Žåãmallocã§åçã«å²ãåœãŠãããã¡ã¢ãªã¯
freeã§è§£æŸãããªããŠããããã°ã©ã çµäºåŸã«åœ±é¿ã¯æ®ã
ãŸããã
UnixãWindows95/98/NTãªã©ã®ãããªãã«ãã¡ããšããOSã
ããå ŽåããMS-DOSãHuman68kãªã©ã®DOSç°å¢ã§ã¯ãmalloc
ã§åçã«å²ãåœãŠãããã¡ã¢ãªãfreeã§è§£æŸãããªãã£ã
ãããšãã£ãŠãããã°ã©ã çµäºåŸã«åœ±é¿ãããããªäŸã¯ã
ã©ãããååšããªãããã§ãã
åã¯ãmallocã§åçã«å²ãåœãŠãã¡ã¢ãªã¯ãå¿
ãfreeã§è§£
æŸããããã«ããŠããŸããããããäœ¿ãæšãŠã®ããŒã¿æ§é
(è§£äœããã³ã¹ããçµã¿ç«ãŠãã³ã¹ããšæ¯ã¹ãŠèãã倧ã
ãªãã®) ãçšããå Žåãªã©ãfreeããªãããšãå¿
ãããã³
ãŒãã£ã³ã°ãã¹ã§ç¡ãå ŽåããããŸãããŸããç©æ¥µçã«free
ããªãããšã䞻匵ãã人ãããŸãã
äžæ¹ãäžéšã®çµã¿èŸŒã¿ç°å¢ã§ã¯ãmallocãããå¿
ãfreeã
ãªããã°ãããªãå Žåãããããã§ãã
è°è«ãé·åŒããŠããã®ã¯ã
* ãããªãã«ãã¡ããšããOSãããå Žåã«çµäºçŽåã«free
ããªããOSã«å¯Ÿããã¡ã¢ãªãªãŒã¯ãèµ·ããªãããš
ããèŠæ Œããå°ãããã©ãããªã©ãèŠæ Œã«ãå³å¯ã«è§£éã
ããšã©ããªãããšããããšã ãšæããŸãã質åã®ç°å¢ã§ã
å²ãåœãŠãã¡ã¢ãªãæ®ã£ãŠããŸããã©ãããšããããšã¯ã
è°è«ã®çµæã«ãã£ãŠå·Šå³ãããŸããã
---
äœæž¡è©©é (ãã© ããã) / e-mail : sa...@smlab.tutkie.tut.ac.jp
OSãæžãã®ã«Cã䜿ã£ããšãã«ããã®Cã¯ãOSäžã§åäœããŠããã®ã§ãã?
Shiroh Sado wrote:
ç§ã«ã¯ããããŸãããããŠããããç¥ããªãããããŠããªãããç¥ããªãã
ãã ãOSäžã§åãCãšãçµã¿èŸŒã¿çšã®Cãåºå¥ããŠè°è«ãããŠãã人ã
ããããã§ããã©ããããªåºå¥ã¯æå³ãç¡ãã®ã§ã¯ãªãããšæã£ããŸã§ã§ãã
UNIX ã malloc ãããšãã«å¿
èŠãªã¡ã¢ãªã¯èª°ãçšæããŠããããã§ããããã
UNIX ã exit ãããšãã¯èª°ãåŸå§æ«ããŠããããã§ããããã
> > èŠæ Œã®äžã«ã¯åºãŠããŸãããã§ãmalloc/freeãšããã€
> > ã³ã¿ãŒãã§ãŒã¹ã¯OSã®ååšãåæãšããŠããããããã
> > ããã仿§ã«ãªã£ãŠããããšãã話ãã ããããã§ã¯å
> > è«ã«ãªã£ãŠãŸããã
>
> OSãæžãã®ã«Cã䜿ã£ããšãã«ããã®Cã¯ãã©ããªOSäžã§
> åäœããŠããã®ã§ããããïŒ
ç§ã¯ãOS ã®äžã§ãã©ã€ãã©ãªé¢æ°ã® malloc(3) ãåŒãã§ããäŸãèŠãããšã
ãããŸãããå
·äœçã«ã¯ãã©ãã®ãã㪠OS ã®ããšãæ³å®ããŠããããã®ã§ãã
ãã?
--
nog...@swlab.csce.kyushu-u.ac.jp
Grad. School of Info. Sci. and Ele. Eng., Kyushu Univ., Fukuoka, Japan
In article <95c3h3$h9u$1...@ns.src.ricoh.co.jp>
oh...@src.ricoh.co.jp (Junn Ohta) writes:
> èŠæ Œã®äžã«ã¯åºãŠããŸãããã§ãmalloc/freeãšããã€
> ã³ã¿ãŒãã§ãŒã¹ã¯OSã®ååšãåæãšããŠããããããã
> ããã仿§ã«ãªã£ãŠããããšãã話ã
ã ããããC èšèªã malloc/free ãæåã«äœãããæã¯
ããã ã£ãããç¥ããªããã©ãANSI C ãšããŠèŠæ Œåããã
æã«ã¯ãOS ãåæãšããªãããã«æœè±¡åããããã ã£ãŠã°ã
ãããïœãµãããããã®ãŸãŸãªã®ã¯ãäºææ§ãä¿ã€ããã
> ååãããã ã£ããã©ç岡ãããŠã°ããããäººã®æžãã
> èšäºãçè§£ããŠãªãã®ãã
ããªããããèŠæ Œãšã¯äœãªã®ãããããããåãã£ãŠãŸããã
ã»ã
NOGUCHI Yusuke wrote:
>
> ç§ã¯ãOS ã®äžã§ãã©ã€ãã©ãªé¢æ°ã® malloc(3) ãåŒãã§ããäŸãèŠãããšã
> ãããŸãããå
·äœçã«ã¯ãã©ãã®ãã㪠OS ã®ããšãæ³å®ããŠããããã®ã§ãã
> ãã?
>
åãããªããã質åãããã§ããã©ã
Cã§OSãæžããšãã« malloc ã䜿çšããŠã¯ãªããªãããšãããããª
èŠå®ãããã®ã§ããããã
malloc ã䜿çšããªããšããããå¿
èŠãªã¡ã¢ãªãã©ããã£ãŠ
確ä¿ããŠãããã§ããããã
ããŒãã»ã»
ããã£ãŠãªããæ··ç·ããŠããããªã®ã§ããã以äžã¯ç¶ããªã
ããšã«ããŸãã
ïŒããªãŒã¯ããŠããã¡ã¢ãªãããã¯ãã®å®çŸ©ãéããããªæ°ããã
> > ãšããããšã§ãããã¯ããããããã«éå®ãã話ã§ããã
> éããŸããUNIXã«éå®ãã話ã§ã¯ãªãããšããããšã瀺
> ãããã«ããããæžããã®ã§ãã...ã
äžçªæåã«ãããåºãŠããŠããã®ã§ã
ã¡ã¢ãªããŒã«ãšããèããã«ãããšããããšã§
ããã®ã§ããããïŒ
ïŒå®è£
ã§ã¯å€ãããšåããããªå®è£
ã ãšæããŸããã
> > malloc()ã§ç¢ºä¿ããã¡ã¢ãªãããã¯ãããã»ã¹ãçµäºããåŸã
> > ååšãã€ã¥ãããšããŠãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšãããã®ã§ã¯ïŒ
> ãANSIæºæ ãã§ã¯ãªããŠãANSIãšã¯ç¡é¢ä¿ãã§ããã
ããã§ã¯ãç¡é¢ä¿ãããšããããšã§ã¯ãªã
ãããããå®è£
ã§ãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšãã£ãŠããã®ãã
ã£ãŠããšã§ãã
> > ãšããã
> > ããmalloc()ã§ååŸããã¡ã¢ãªãããã¯ã¯ããã»ã¹ã®çµäºãšãšãã«éæŸãã
ããã
> > ãšããèŠå®ãã«ãããããããã®ãããªèª¬æãæ°ã«å
¥ããªãã ãã§ãã®
ã§
> > ïŒïŒŸïŒŸïŒïŒ
> ãããã説æãããã€ããã¯ãªãã®ã§ãããç§ã®èª¬æã®
> ã©ã®éšåãããã§ãã?
>
> ç§ãããããã®ã¯
> ã»ANSI Cã®ç°å¢ã§
> ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
> ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
> ãšããããšã ãã§ããããšã¯æèã§ãã
ã®
ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
éšåãªã®ã§ãã
èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
ã®ã¯ã©ãããšãããã ãã§ãã
ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
ïŒ ä»¥äžãèŠæ Œã®è©±ãã§ããèŠæ Œã®è©±ããæåã«æã¡åºããã®ã¯å€ªç°ãã
ïŒ ãªã®ã§ããããšããšã¯ç¹å®ã®åŠçç³»ã®è©±ãã ã£ãã®ã«ãèŠæ Œã®è©±ãã«
ïŒ ããããããã£ãŠãããªã©ã®æå¥ã¯å€ªç°ãããžã©ããã
In article <KATE.01F...@sims211.trad.pfu.co.jp>
ka...@pfu.co.jp (KATAYAMA Yoshio) writes:
> >ANSI C èŠæ Œ (æ£ç¢ºã«ã¯ããŒããèªãã ã®ã¯ JIS X 3010 ã ãã©...)
> >ãèšåããŠããã®ã¯ããOSãã§ããªããŠãããã¹ãç°å¢ãã§ãã
>
> ISO:IEC 9899 ã§ã¯ã
>
> In a freestanding environment (in which C program
> execution may takeplace whithout any benefit of an operating
> system), 以äžçç¥
>
> ãšãoperating system ã«ãèšåãããŠããŸãã
ããã¯å€±ç€ŒããŸããã
> ïŒ JIS X 3010 ã¯æå ã«ãªãã®ã§åãããŸãã
JIS X 3010 ã§ã¯ã5.1.2.1 ããªãŒã¹ã¿ã³ãã£ã³ã°ç°å¢ã®ãšããã«ã
ããªãŒã¹ã¿ã³ãã£ã³ã°ç°å¢ã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®
ãããªãæ¯æŽããªãã« C ããã°ã©ã ã®å®è¡ãè¡ãã
ãšæžããŠãããŸããã(ä»ã«ããã£ããããããªããã)
ïŒ ãªãããåæãšãã¥ã¢ã³ã¹ãã¡ãã£ãšéããããª...
ãã ã7.10.4.3 ã«ã¯ãexit() ãå¶åŸ¡ãæ»ãçžæã¯ãOSãã§ã¯ãªãã
ããã¹ãç°å¢ããšæžããŠãããŸãã®ã§ããããã®äž»åŒµã¯å€ãããŸããã
ïŒïŒ
> >ãã¡ããããµã€ïœã¯ leak ããªãããšãæåŸ
ããŸãããããã¯
> >ãããŸã§ quality of implementation issue ã«éããŸããã
>
> 確ãã«ããã§ããããã®ãããªåŠçç³»ã¯éåžžã«äœ¿ãé£ãã§ããããã
ã䜿ãé£ãããšããã®ã¯äž»èгçãªè©äŸ¡ã§ãããªã®ã§ãèŠæ Œã«ã¯ãªãã¿
ãŸãããã ãããã quality of implementation issue ãªãã§ãã
èŠæ Œãšããã®ã¯ããªãã¹ãäœèšãªä»®å®ãæé€ããããšã«ãã£ãŠã察象
(ããã§ã¯ C èšèª) ã®å¿çšç¯å²ãããã¿ã«å¶éããããšããªãããã«
æžãããŠãããã§ãã
ã»ã
ã®(b)ã¯ãANSI Cã§ã¡ã¢ãªãŒãªãŒã¯ããªããšããèŠå®ãç¡ã以äžã¯ãããŠã»ããã§
ãã
å
·äœçã«ã¯
(a) malloc()ã¯ãã©ãããããã¡ã¢ãªãŒãããã£ãŠãã
(ã©ããããã¯æèšãããŠããªã)ããfree()ã¯ãã®
ãã©ãããã«ã¡ã¢ãªãŒãè¿ããšæžãããŠããªãã
(b) malloc()ããã¡ã¢ãªãŒã¯free()ããªããã°ãããªã
ãšã¯ã©ãã«ãæžãããŠããªãã
(c) free()ããã¡ã¢ãªãŒã«ã€ããŠã¯malloc()ã§åå©çšã
ãããšããæžãããŠããªãã
ãšããç¹ã§ãã
ã€ãŸããmalloc()ãã©ãããã¡ã¢ãªãŒãããã£ãŠããã«
ãããANSI Cã®ä»æ§ã§ã¯ãã®ã©ããã«ã¡ã¢ãªãŒãè¿ãæ
段ã¯å®çŸ©ãããŠããªãããè¿ããšãæžããŠãªãããšãã
ããšã§ãããããããããã仿§ãã
> ããexit()ããã°ãªãŒã¯ããªããã£ãŠä»°ããããã ãããåœç¶exit()
> ãã®ãã®ã«ãªãŒã¯ãé²ãæ©èœãå«ãŸããŠããããšãšã仿§ãã«çã蟌ãŸ
> ããŠãªããšãããããã¹ããïŒ
ç§ã䞻匵ããã®ã¯ãexit()ããã°ãã§ã¯ãªããŠãããã°
ã©ã ãçµäºããã°ãã ãã§ãããexit()ãåŒã°ãããã
åŒã°ããŸããé¢ä¿ãªãã§ãã
Sugihara Yoshimi wrote:
> > ç§ãããããã®ã¯
> > ã»ANSI Cã®ç°å¢ã§
> > ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
> > ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
> > ãšããããšã ãã§ããããšã¯æèã§ãã
>
> ã®
> ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
> éšåãªã®ã§ãã
> èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
> ã®ã¯ã©ãããšãããã ãã§ãã
> ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
èŠæ Œã«ã¯ãfree()ããªããã°ãªããªãããšã¯æžããŠãããŸããããã
æžããŠããªãããšããããšã¯ãfree()ããªããŠãã·ã¹ãã äžã®å€§ããªåé¡ã¯çºçããªããš
èããããŸãã
å€ãã®OSã«ãšã£ãŠãã¡ã¢ãªãŒãªãŒã¯ã¯ã·ã¹ãã äžã®å€§ããªåé¡ã§ãããã
ã¡ã¢ãªãŒãªãŒã¯ãçºçããªããšèããŠããããšæããŸãã
--
cog...@sp.hudson.co.jp
æ ªåŒäŒç€Ÿãããœã³
ç ç©¶éçºæ¬éšãç ç©¶éçºèª²
ç岡 å¿(Kumaoka Shinobu)
ããã¯ANSI Cããã°ã©ã ãæžãåŽã«ãšã£ãŠã®è©±ã§ãããã
ããã°ã©ããŒã¯ANSI Cã®ä»æ§ã«åŸã£ãŠããã°ã©ã ãæžã
ãŠããéããOSã®ååšãèæ
®ããã«èªåã®æžããããã°
ã©ã ãANSI Cã®ä»æ§ã©ããã®åãããããšæåŸ
ã§ããã
ãã§ãã
åŠçç³»ãæžãåŽã«ãšã£ãŠã¯ãANSI C仿§ã«åŸã£ãŠæžãã
ãããã°ã©ã ãããã®åŠçç³»ãã¿ãŒã²ãããšããç°å¢ã§
仿§ã©ããã®åããããããã«ããããã®ããã®ææšã
ANSI Cã§ããããšã
> ãããïœãµãããããã®ãŸãŸãªã®ã¯ãäºææ§ãä¿ã€ããã
ã€ã³ã¿ãŒãã§ãŒã¹ããã®ãŸãŸãªã®ã¯ãåŠçç³»äœæè
ã«å®
è£
æ¹éã瀺åããããã§ããããŸããmalloc()ãã£ã±ãª
ãã§free()ããªãããã°ã©ã ãANSI Cã«å³å¯ã«åŸã£ãŠã
ãã®ã ãããåŠçç³»äœæè
ã¯ãã®ãããªããã°ã©ã ã§ã
ã¿ãŒã²ããç°å¢ã§ãŸãšãã«åãããã«malloc()/free()
ãå®è£
ããå¿
èŠãããã
ç§ã«ãšã£ãŠã¯ãããANSI CèŠæ Œã®æå³ãèŠæ Œã®èŠè«ã§ãã
ã»ãããã¯quality of implementation issueã§çä»ã
ãŠããŸããã©ããã ããã»ãããããšã®éã§ã¯ããŸãäº
ç¹ã¯ãªãã®ã§ã¯ãªãããšæã£ãŠããã®ã§ãã
In article <3A7A1162...@ga.sony.co.jp> ,
sasaki tadao <ta...@ga.sony.co.jp> writes
>> ç§ã¯ãOS ã®äžã§ãã©ã€ãã©ãªé¢æ°ã® malloc(3) ãåŒãã§ããäŸãèŠãããšã
>> ãããŸãããå
·äœçã«ã¯ãã©ãã®ãã㪠OS ã®ããšãæ³å®ããŠããããã®ã§ãã
>> ãã?
>åãããªããã質åãããã§ããã©ã
ãããªãã® Free ã®OSã§ãgrep malloc *.c ããŠã¿ãã°äžçºã§ãã
ãããã® malloc() ã¯ãsys/malloc.h ã§å®çŸ©ãããŠãããã®ã§ãã
ãã¡ãã free() ããããŸãããããã® malloc() ã¯å¿
ã free()
ããå¿
èŠããããŸãã
ãããã¯ãåœç¶ãã©ã€ãã©ãªã®malloc(3) ãšã¯ç°ãªããŸãããã¡ã
ã¯ãmalloc.h ãincldue ããŸãã
ãªãã ãã©ãä»ã®åé¡ã¯ exit() ãš free() ã®é¢ä¿ã§ãããã
ãªã®ã§ãããããèãã¹ã質åã¯ã
> ç§ã¯ãOS ã®äžã§ãexit() ãåŒãã§ããäŸãèŠãããšãããã
ã£ãŠããšã«ãªãã®ã ãšæããŸããMicro Kernel ãšãã ãšããã®ã§
ããããããããMicro Kernelã®å€ã®éšåãOSãšåŒã¶ãšããã°...
>malloc ã䜿çšããªããšããããå¿
èŠãªã¡ã¢ãªãã©ããã£ãŠ
>確ä¿ããŠãããã§ããããã
åãèªåã§æžããæã«ã¯ãMMUã«ã¢ã¯ã»ã¹ããŠfree blockãèŠã€ãã
ãããèªåã®ã¡ã¢ãªç©ºéã«ãããããŠããŸãããget_page()ãšããª
ãããããªã¢ã»ã³ãã©ã®entryãšãtrap ãšããäœããŸãããã¡ãªã¿
ã«ãexit ã¯ã©ããããã¯æãåºããªãã§ããfree_all() ã¯äœã£ã
ãšæãã
ãã®ã¬ãã«ããŠãŒã¶ããã°ã©ã ã§æ±ãããšã¯ã»ãšãã©ãªãã§ãã
ãªã®ã§ãmalloc()/free()ã«ããŠããããã ãã©...
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
æ²³éçæ²» @ çç倧åŠå·¥åŠéšæ
å ±å·¥åŠç§,
ç§åŠæè¡æ¯èäºæ¥å£ããããç ç©¶21(æ©èœãšæ§æ)
On Fri, 2 Feb 2001 11:03:00 +0900,
Sugihara Yoshimi <sugi...@kyosai.or.jp> wrote:
>> ç§ãããããã®ã¯
>> ã»ANSI Cã®ç°å¢ã§
>> ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
>> ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
>> ãšããããšã ãã§ããããšã¯æèã§ãã
>
>ã®
>ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
>éšåãªã®ã§ãã
>èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
>ã®ã¯ã©ãããšãããã ãã§ãã
>ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
ãïœãªãã°ïœã§ãããã®ãïœã§ãããã®éšåã ãåãåºããŠãã
ããã¯å€ªç°ããã®äž»åŒµãšã¯éããã®ã ãšæãã®ã§ããã
--
FUKUI Tsuyoshi
tfu...@kansai.oki.co.jp
ã§ãã
> æžããŠããªãããšããããšã¯ãfree()ããªããŠãã·ã¹ãã äžã®å€§ããªåé¡ã¯çºçã
ãªããš
> èããããŸãã
ãã ã·ã¹ãã ã§åé¡ãçºçãããã©ããã¯ïŒ¡ïŒ®ïŒ³ïŒ© ã«ãšã£ãŠã¯ã©ãã§ãè¯ã
ããšã ãšããããŸãããããå
ã®
ãfree()ããªãã£ããã¡ã¢ãªãªãŒã¯ãããããªå®è£
ã®å Žåã§ãANSIæºæ ãšãã¹ãã®ã
ïŒã
ãšãã質åã«ãªã£ãããã§ãã
ãã ãmalloc()ãäœããã®åœ¢ã§ã¡ã¢ãªããã確ä¿ãããŠããã®ã ãã
ãéæŸãããŠãããã»ããè¯ããšèããŠãããŸãã
free()ã§ã¯malloc()ã§ç¢ºä¿ããã¡ã¢ãªãå確ä¿ã§ããããã«ããã
ãšããã®ã ãããmalloc()ãäœããã®åœ¢ã§ã確ä¿ãããã¡ã¢ãªã
free()ãäœããã®åœ¢ã§ãéæŸïŒãŸãã¯æªäœ¿çšïŒãã«ããŠãããŠãã
ãšèããŠããŸãã
ãããã©ã®ããã«æ±ãããŠããã®ããªããŠäžåèå³ãªãã§ãã
ãã free()ã®èŠå®ããmalloc()ã§ç¢ºä¿ããã¡ã¢ãªãéæŸãããŠããã
ãšããããã«èªã¿åããã®ã§ãfree()ããã»ããè¯ããšãã倿ã«
ããã£ãŠããããã§ãã
> å€ãã®OSã«ãšã£ãŠãã¡ã¢ãªãŒãªãŒã¯ã¯ã·ã¹ãã äžã®å€§ããªåé¡ã§ãããã
> ã¡ã¢ãªãŒãªãŒã¯ãçºçããªããšèããŠããããšæããŸãã
確ãã«ã¡ã¢ãªãªãŒã¯ããããã§ããã°ä¿¡é Œæ§ã«ãããŸãã
ãããšCèšèªã®èŠæ Œãšã¯å¥ã®è©±ãšããããŸãã
ãŸãä¿¡é Œæ§ãèšãã®ã§ã§ããã°free()ããã»ãããããå®å
šã«ãªããšæãã®ã§
ããã ãä¿¡é Œæ§ã®é«ããœããã«ãªããš ãããã®ã§ã¯ïŒ
ãmalloc()ã¯ãã©ãããããã¡ã¢ãªãããã£ãŠãããã
ãfree()ã¯malloc()ã§åå©çšã§ããããã«ãããã
ã®ã€ãªããã§
free()ã¯malloc()ããã©ãããããã¡ã¢ãªã確ä¿ã§ããããã«
ãããããã¡ã¢ãªããã©ãããã«è¿ããŠãã
ãšèªã¿åããã®ã§ã¯ïŒ
ãfree()ããªããã°ãªããªãã
ãšããã®ã¯malloc()ããã¡ã¢ãªããªãŒã¯ããããããŸããã
ANSIã«ãšã£ãŠã©ãã§ãè¯ãããšãªã®ã§æžããŠãªã
ãšèªã¿åã£ãŠããŸãã
> ã€ãŸããmalloc()ãã©ãããã¡ã¢ãªãŒãããã£ãŠããã«
> ãããANSI Cã®ä»æ§ã§ã¯ãã®ã©ããã«ã¡ã¢ãªãŒãè¿ãæ
> 段ã¯å®çŸ©ãããŠããªãããè¿ããšãæžããŠãªãããšãã
> ããšã§ãããããããããã仿§ãã
ãè¿ããªããŠãã¡ã¢ãªãªãŒã¯ããªãã
ãšãæžããŠãŸãããã
>> Q. freeããã«çµäºãããšãåå¥ã®ç°å¢ã§ã¯ã©ããªãã?
>> A1. ããŸãŸã§åºãæ
å ±ããŸãšãããšãmalloc()ããã¡ã¢
>> ãªãŒãfree()ããã«çµäºããå Žåã
[...]
>> (b) ANSI Cãªãã¡ã¢ãªãŒãªãŒã¯ã¯èµ·ããªã
[...]
>> <88qimd$1hu$1...@ns.src.ricoh.co.jp>
>ã®(b)ã¯ãANSI Cã§ã¡ã¢ãªãŒãªãŒã¯ããªããšããèŠå®ãç¡ã以äžã¯ãããŠã»ããã§
>ãã
äœæž¡ããã®èšäºã¯éå»ã«æçš¿ãããèšäºãéãããã®ãªã®ã§ã倪ç°ãã
ã®èšäºãåæã«æžãæããããã«ã¯ãããªãã§ãããã
ããã«ãããŸïŒ21 Feb 2000 05:33:01 GMTïŒãŸã§åºãæ
å ±ãã§ã¯ãANSI
C ã§ã¡ã¢ãªãŒãªãŒã¯ãèµ·ããåŠçç³»ã¯ãªãã£ãã®ã§ããããééãã§ã¯
ãããŸãããããã®åŸããã®ãããªåŠçç³»ã®å ±åã¯ãªãã£ãããã§ãã
ANSI C ã§ã¡ã¢ãªãŒãªãŒã¯ãèµ·ããåŠçç³»ïŒfreestanding ãé€ãïŒã®å®
äŸã瀺ãããã°ã倪ç°ããã¯èšæ£ãããã§ãããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
fj.comp.lang.cã®èšäº<95d4fp$bmp$1...@news.kyosai.or.jp>ã§
sugi...@kyosai.or.jpããã¯æžããŸããã
> ããŒãã»ã»
> ããã£ãŠãªããæ··ç·ããŠããããªã®ã§ããã以äžã¯ç¶ããªã
> ããšã«ããŸãã
> ïŒããªãŒã¯ããŠããã¡ã¢ãªãããã¯ãã®å®çŸ©ãéããããªæ°ããã
sugiharaããã®ãã£ãããããªãŒã¯ãã¯ãããã°ã©ã ã§
ã¯ãã䜿ãããŠããªãã®ã«malloc()ã§ããªãç¶æ
ããšã
ãæå³ã§ãã? ãããªãçè§£ã§ããŸãã
ç§ã«ãšã£ãŠã¯ãããã°ã©ã äžã§äžèŠã«ãªã£ãé åã¯ãå
å©çšããããã°free()ããã°ããã®ã ãããã®å¿
èŠããª
ããã°æŸçœ®ããŠãããŠãããã§ãããã®æŸçœ®ãããç¶æ
ãããªãŒã¯ããšã¯åŒã°ãªãç«å Žãã§ããã
> ã¡ã¢ãªããŒã«ãšããèããã«ãããšããããšã§
> ããã®ã§ããããïŒ
free()ã®å®çŸ©ã«ãfree()ãããã®ã¯malloc()ã§åã³å²ã
åœãŠå¯èœã«ãªãããšæžãããŠããŸãããã®ãåã³å²ãåœ
ãŠå¯èœããšããç¶æ
ã®ã¡ã¢ãªãŒããmalloc()ãããåã®
ã¡ã¢ãªãŒãšã¯ç°ãªãç¶æ
ã«ãããšããæå³ã§ãä»®ã«ã¡ã¢
ãªãŒããŒã«ãšåŒãã§ããã ãã§ããã¹ã€ã®åŒã³ãããã
ãŠããã£ãŠãããŸããŸããã
ãã·ã¹ãã ã§åé¡ãçºçãããã©ããã¯ANSI Cã«ãšã£ãŠ
ã¯ã©ãã§ãããããšããç«å Žããã¯ããfree()ãããã
ããŸããã¡ã¢ãªãŒãªãŒã¯ãããããªå®è£
ã§ãANSIæºæ ãš
åŒã¹ãããçãã«ãªããšæããŸãã
ãã ãããã§ã¯ANSI CãåŠçç³»äœæè
ã«æåŸ
ããŠããèŠ
æ±ä»æ§ãç¡èŠããããšã«ãªãã§ããããã
> ãã ãmalloc()ãäœããã®åœ¢ã§ã¡ã¢ãªããã確ä¿ãããŠããã®ã ãã
> ãéæŸãããŠãããã»ããè¯ããšèããŠãããŸãã
æ°åã®åé¡ã§ãããããããããã®ã»ããæ°åãããã
ãšããããšãªãæ¢ãã¯ããŸããã
> ãŸãä¿¡é Œæ§ãèšãã®ã§ã§ããã°free()ããã»ãããããå®å šã«ãªããšæãã®ã§
ãfree()ããã»ããããå®å
šã«ãªããã«ã¯äœã®æ ¹æ ããª
ãã§ããããOSåŽããã¡ããšã¡ã¢ãªãŒç®¡çãããŠããã°
free()ããããããŸããé¢ä¿ãããŸããããOSã®ã¡ã¢ãª
ãŒç®¡çã«åé¡ããããªããfree()ããã»ããå®å
šãªããš
ããããããªãã»ããå®å
šãªããšããããŸãã
ãã®ãããã®å®äŸã¯ååã®è°è«ã®ãšãã«ãããããšåºãŠ
ããã®ã§ãèå³ããã£ããèŠçŽããŠã¿ãŠãã ããã
Shinobu Kumaoka wrote:
> > ãfree()ããªãã£ããã¡ã¢ãªãªãŒã¯ãããããªå®è£
ã®å Žåã§ãANSIæºæ ãšãã¹ãã®ã
> > ïŒã
> > ãšãã質åã«ãªã£ãããã§ãã
>
> ç§ãªããããã°ããšåŒã³ãŸãã
>
ã¡ã¢ãªãŒãªãŒã¯ãã·ã¹ãã ã«ãšã£ãŠéèŠãªåé¡ãšã¯ãªããªãã·ã¹ãã ã®å Žåã«ã¯ã
ç§ããããã°ããšã¯åŒã³ãŸããã
Sugihara Yoshimi wrote:
> ãã ã·ã¹ãã ã§åé¡ãçºçãããã©ããã¯ïŒ¡ïŒ®ïŒ³ïŒ© ã«ãšã£ãŠã¯ã©ãã§ãè¯ã
> ããšã ãšããããŸãããããå
ã®
> ãfree()ããªãã£ããã¡ã¢ãªãªãŒã¯ãããããªå®è£
ã®å Žåã§ãANSIæºæ ãšãã¹ãã®ã
> ïŒã
> ãšãã質åã«ãªã£ãããã§ãã
ç§ãªããããã°ããšåŒã³ãŸãã
ããèªã¿åãå¿ èŠãããããã§ã¯ãªãã§ãã
malloc()ã¯ãã£ãããã©ãããããããã£ãŠããã¡ã¢ãª
ãŒãèªåã®æããšã§ç®¡çããŠããŠããŸããªãããã§ããã
free()ã¯ã¡ã¢ãªãŒããã©ãããã«è¿ããã«ãmalloc()ã®
æããšãã«è¿ãã ãã§ãã
ãã¶ãã§ãã
> ãfree()ããªããã°ãªããªãã
> ãšããã®ã¯malloc()ããã¡ã¢ãªããªãŒã¯ããããããŸããã
> ANSIã«ãšã£ãŠã©ãã§ãè¯ãããšãªã®ã§æžããŠãªã
> ãšèªã¿åã£ãŠããŸãã
ããèªãã ãšããŠããfree()ããã»ãããããçç±ã¯ã©
ããããåºãŠããŸãã?
> ãmalloc()ã¯ãã©ãããããã¡ã¢ãªãããã£ãŠãããã
> ãfree()ã¯malloc()ã§åå©çšã§ããããã«ãããã
>
> ã®ã€ãªããã§
> free()ã¯malloc()ããã©ãããããã¡ã¢ãªã確ä¿ã§ããããã«
> ãããããã¡ã¢ãªããã©ãããã«è¿ããŠãã
> ãšèªã¿åããã®ã§ã¯ïŒ
èªã¿åããŸããã
mallocã¯AãŸãã¯Bãããšã£ãŠããã
freeã¯Bã«çœ®ãã§ãããããã§ãããã
ããããšã«ãè¿ããå¿
ç¶æ§ã¯ãããŸããã
> ãã ãmalloc()ãäœããã®åœ¢ã§ã¡ã¢ãªããã確ä¿ãããŠããã®ã ãã
> ãéæŸãããŠãããã»ããè¯ããšèããŠãããŸãã
> free()ã§ã¯malloc()ã§ç¢ºä¿ããã¡ã¢ãªãå確ä¿ã§ããããã«ããã
> ãšããã®ã ãããmalloc()ãäœããã®åœ¢ã§ã確ä¿ãããã¡ã¢ãªã
> free()ãäœããã®åœ¢ã§ãéæŸïŒãŸãã¯æªäœ¿çšïŒãã«ããŠãããŠãã
> ãšèããŠããŸãã
ã ãã©ãfree()ããè§£æŸããããšããèŠå®ã¯ãªãã®ã§ããã
> ãã free()ã®èŠå®ããmalloc()ã§ç¢ºä¿ããã¡ã¢ãªãéæŸãããŠããã
> ãšããããã«èªã¿åããã®ã§ã
åæãªæã蟌ã¿ã§ããã
--
Tomoaki Nishiyama
e-mail:tom...@nibb.ac.jp
National Institute for Basic Biology
>> > ãªãŒã¯ããŠããã®ã«åå²ãåœãŠã§ãããã§ããïŒ
>> ãšããããåå²ãåœãŠããããããšããŠããæç¹ã§ã¯ãŸ
>> ã ãããªãããªãŒã¯ããçºçããŠããªãããã§ããã ã
>> ãããªãŒã¯ããŠããã®ã«åå²ãåœãŠããšããç¶æ³èªäœã«
>> æå³ããªãã§ããã
>ããã£ãŠãªããæ··ç·ããŠããããªã®ã§ããã以äžã¯ç¶ããªã
>ããšã«ããŸãã
>ïŒããªãŒã¯ããŠããã¡ã¢ãªãããã¯ãã®å®çŸ©ãéããããªæ°ããã
ãã¡ã¢ãªãŒãªãŒã¯ãã«ãOS ã§ã®ãªãŒã¯ãšãããã»ã¹ã§ã®ãªãŒã¯ã®ïŒçš®
é¡ããããšãèªèããŠããŸããããã®ã¹ã¬ããã§è°è«ã®å¯Ÿè±¡ãšãªã£ãŠã
ãã®ã¯åè
ã®ããšã§ããããªãŒã¯ããŠããã®ã«åå²ãåœãŠã§ãããã§ã
ããã¯åŸè
ã§ããã
>ã¡ã¢ãªããŒã«ãšããèããã«ãããšããããšã§
>ããã®ã§ããããïŒ
ããã§èšãã¡ã¢ãªãŒããŒã«ãšã¯ãã©ã€ãã©ãªãŒã管çããŠããã¡ã¢ãªãŒ
ããŒã«ã®ããšãšæããŸãããèŠæ Œã¯ãã®ãããªå®è£
ãåŠå®ããŠããªãã
ãã§ããã
å
šãç°ãªãå®è£
ã§ãã£ãŠãæ§ããŸããããå€ãã®ã·ã¹ãã ã§ã¯ããã®ã
ããªå®è£
ããå©ç¹ãå°ãªãããã§ãã
>> > malloc()ã§ç¢ºä¿ããã¡ã¢ãªãããã¯ãããã»ã¹ãçµäºããåŸã
>> > ååšãã€ã¥ãããšããŠãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšãããã®ã§ã¯ïŒ
>> ãANSIæºæ ãã§ã¯ãªããŠãANSIãšã¯ç¡é¢ä¿ãã§ããã
>ããã§ã¯ãç¡é¢ä¿ãããšããããšã§ã¯ãªã
>ãããããå®è£
ã§ãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ãšãã£ãŠããã®ãã
>ã£ãŠããšã§ãã
C èšèªã®èŠæ Œã§èŠå®ããŠããã®ã¯ããã°ã©ã ã®çµäºãŸã§ã§ãããç¡é¢ä¿
ã§ããã€ãŸãããããããå®è£
ã§ãïŒ¡ïŒ®ïŒ³ïŒ©æºæ ããšãªãããŸãã
OS ã§ã¡ã¢ãªãŒãªãŒã¯ãèµ·ãããã㪠C èšèªã®å®è£
ãèš±ããããã¯ãã
ã® OS ã®èŠçŽãããã® OS ãåŸã£ãŠããèŠæ ŒïŒãããã°ïŒçã«ãããŸãã
>> ã»ANSI Cã®ç°å¢ã§
>> ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
>> ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
>> ãšããããšã ãã§ããããšã¯æèã§ãã
>ã®
>ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
>éšåãªã®ã§ãã
>èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
>ã®ã¯ã©ãããšãããã ãã§ãã
>ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
ãã®ã¹ã¿ã³ã¹ã§ããã°ã
ã»free() ããã° OS ã§ã¡ã¢ãªãŒãªãŒã¯ããªã
ãšããããšãèŠå®ãããŠããªãã®ã§ããã®ãããªåäœãæåŸ
ããŠã¯ãã
ãŸããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
>ãã ãOSäžã§åãCãšãçµã¿èŸŒã¿çšã®Cãåºå¥ããŠè°è«ãããŠãã人ã
>ããããã§ããã©ããããªåºå¥ã¯æå³ãç¡ãã®ã§ã¯ãªãããšæã£ããŸã§ã§ãã
C èšèªèŠæ ŒïŒISO/IEC 9899ïŒã® freestanding environment ãš hosted
environment ãæ ¹æ ã§ããfreestanding environment ã§ã¯ãèŠæ Œã§èŠ
å®ãããŠããã©ã€ãã©ãªãŒé¢æ°ãã¹ãŠã䜿ãããšã¯éããŸãããC99 ã§
ã¯ãæŽã« 6. Language ã§èŠå®ãããŠããæ©èœã®äžéšã䜿ãããšã¯éã
ãŸãã
>UNIX ã malloc ãããšãã«å¿
èŠãªã¡ã¢ãªã¯èª°ãçšæããŠããããã§ããããã
>UNIX ã exit ãããšãã¯èª°ãåŸå§æ«ããŠããããã§ããããã
C èšèªã ãã§ãªããOS ã®ãå匷ãããæ¹ãããã§ããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
ã¹ã¬ãããRe: mallocã§å²ãåœãŠãã¡ã¢ãªã®è³ªåãã§ã®
ko...@ie.u-ryukyu.ac.jpæ°ã®çºèš <4923.98...@rananim.ie.u-ryukyu.ac.jp> ããåŒçš
>> ãããã¯ãåœç¶ãã©ã€ãã©ãªã®malloc(3) ãšã¯ç°ãªããŸãããã¡ã
>> ã¯ãmalloc.h ãincldue ããŸãã
malloc(3) 㯠stdlib.h ã include ããã®ã§ããã?
ãããããšã«è¿ããã§ã¯ãªã
malloc()ã§åå©çšã§ããããã«ãªãããšã
ãè¿ãããšè¡šçŸããŠãã«éããŸããã
malloc()ã§ç¢ºä¿ããã¡ã¢ãªã¯ããã°ã©ããŒã®ç®¡çäžãªãã
free()ã«ããããã°ã©ããŒã®ç®¡çäžã§ãªããªããmalloc()ã§
åå©çšã§ããããã«ãªãã
ãšçè§£ããŠä»¥äžãã確ä¿ãïŒãéæŸïŒè¿ãïŒããšè¡šçŸããŠããŸãã
ããããfree()ããã°malloc()ã§åå©çšã§ããããšãèŠå®ãããŠãã
ããã§ãããfree()ããªããŠãããã»ã¹ããçµäºããã°åå©çšã§ãã
ãšèŠå®ãããŠããã®ã§ããããïŒ
ïŒãšæ°ã«ããŠããã®ã¯ãã®éšåãªãã§ã»ã»
ãããåè
ã§ãããã§ãã
ããã¯ããªãŒã¯ããŠããã®ã«åå²ãåœãŠã§ããã®ãïŒã
ã£ãŠããšã§ãã
åè
ã§ãåŸè
ã§ãããªãŒã¯ãããŠãããåå²ãåœãŠã§ããªã
ãšãããã®ã§ããã
ïŒåŸè
ã ãšããã»ã¹ãçµäºããã°ã¡ã¢ãªã¯ãã¹ãŠéæŸãããã®ã§
ïŒåå²ãåœãŠã§ããããšåè«ããããã§ãããããã£ãŠããã»ã¹ã
#çµäºããŠãã¹ãŠOSãéæŸãã¡ãã£ããããªãŒã¯ããšã¯åŒã°ãªãã®ã§ã¯ïŒ
> >ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
> >éšåãªã®ã§ãã
> >èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
> >ã®ã¯ã©ãããšãããã ãã§ãã
> >ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
> ãã®ã¹ã¿ã³ã¹ã§ããã°ã
> ã»free() ããã° OS ã§ã¡ã¢ãªãŒãªãŒã¯ããªã
> ãšããããšãèŠå®ãããŠããªãã®ã§ããã®ãããªåäœãæåŸ
ããŠ
>ã¯ãããŸããã
malloc()ã§åå²ãåœãŠã§ããããã«ãªãã®ã ããã
ãã¡ã¢ãªãªãŒã¯ãã¯ãªããšããããŸãã
ãã¡ã¢ãªãªãŒã¯ãã£ãŠãåå²ãåœãŠã§ããªã(䜿ããªã)ã¡ã¢ãªé åã
ãšèªèããŠããŸããã»ã»
ïŒmalloc()ã«éã£ã話ã§ã¯ãªããŠããªãŒã¯ããã®ãã®ã®
ïŒå®çŸ©ã«ãªã£ãŠããŠãïŒïŒŸïŒŸïŒïŒ
ã¡ããã®ããªïŒ
ãã¡ãã¯å šããã®éãã§ãã
ãã ãcut&paste ã®é¢ä¿ãããã³ãç¡çãã Q. A. 察å¿ã¥ãã
ãããããæã®æå³ãäžäžå€ãã£ãŠãããšããããããŸãããã
æªãã®ã¯ç§ã§ãã
ãŸããç¹ã«å€ªç°ããã®èšäºããã®å€§éã«åŒçšããŠããããã®ç¹
ã§åé¡çãããŸãããç³ãèš³ãããŸãããïŒå€ªç°ãã
message-idã¯ã
http://galaxy.rwcp.or.jp/
http://queen.heart.ne.jp/
çã§ãèšäºã®æèã確èªã§ããããã«ãšæ®ããŠãããŸãã
>> ISO:IEC 9899 ã§ã¯ã
>>
>> In a freestanding environment (in which C program
>> execution may takeplace whithout any benefit of an operating
>> system), 以äžçç¥
>>
>> ãšãoperating system ã«ãèšåãããŠããŸãã
>JIS X 3010 ã§ã¯ã5.1.2.1 ããªãŒã¹ã¿ã³ãã£ã³ã°ç°å¢ã®ãšããã«ã
> ããªãŒã¹ã¿ã³ãã£ã³ã°ç°å¢ã§ã¯ããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®
> ãããªãæ¯æŽããªãã« C ããã°ã©ã ã®å®è¡ãè¡ãã
>ãšæžããŠãããŸããã(ä»ã«ããã£ããããããªããã)
玢åŒã§ oprating system ã調ã¹ããš 7.10.4.5 ãåºãŠããã®ã§ããã
ããã«ã¯ host environment ãããããŸããã:-)
ïŒ C99 ãåæ§ã§ã
>ãã ã7.10.4.3 ã«ã¯ãexit() ãå¶åŸ¡ãæ»ãçžæã¯ãOSãã§ã¯ãªãã
>ããã¹ãç°å¢ããšæžããŠãããŸãã®ã§ããããã®äž»åŒµã¯å€ãããŸããã
äŸãã°ãC ããã°ã©ã ãåäœãããããã»ã¹ãèµ·åãããã®ããã»ã¹å
éšã§å®è¡ããããããªåŠçç³»ãªã©ãèš±ãããã«ããã¹ãç°å¢ããšããèª
ãçšããŠããã®ã ãšèããŠããŸããããããããã¹ãç°å¢ããæäŸãã
æ©èœã¯ãOS é
äžã§åäœããããã°ã©ã ã OS ããæäŸãããæ©èœãšå
æ§ãªãã®ã§ãããã
ãã®ããšãšããã¹ãç°å¢ = OS ã§ããå®è£
ãå€ãããšãèãããšããã
ã¹ãç°å¢ããšãOSãã峿 Œã«åºå¥ããªããã°ãªããªãæè以å€ã§ã¯ãæ
ããªããŠãããã®ã§ã¯ãªãããšæããŸãããããã§ããããã
> ïŒïŒ
ããããåºåãã®ããŒã¯ãå ¥ããŠäžããæé£ãããããŸãã
>> 確ãã«ããã§ããããã®ãããªåŠçç³»ã¯éåžžã«äœ¿ãé£ãã§ããããã
>ã䜿ãé£ãããšããã®ã¯äž»èгçãªè©äŸ¡ã§ãããªã®ã§ãèŠæ Œã«ã¯ãªãã¿
>ãŸãããã ãããã quality of implementation issue ãªãã§ãã
èŠæ Œã®è©±ã§ã¯ãªããªã£ãŠããã®ã§äž»èгãè¿°ã¹ãŸããã:-)
ããããæå³ããªã䞻芳ãè¿°ã¹ãããã§ã¯ãªãããã®ãããªåŠçç³»ã¯ã
ãã«å®çšçã§ãªãããšããããšã瀺ãããã£ãã®ã§ãã
ãã¡ãããå®çšçã§ããïŒãªããšããã®ãèŠæ Œãšã¯é¢ä¿ãããŸããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
次åã以éãã®mallocã§äœ¿çšã§ããããšããæåŸ ããããã?
> UnixãWindows95/98/NTãªã©ã®ãããªãã«ãã¡ããšããOSã
> ããå ŽåããMS-DOSãHuman68kãªã©ã®DOSç°å¢ã§ã¯ãmalloc
> ã§åçã«å²ãåœãŠãããã¡ã¢ãªãfreeã§è§£æŸãããªãã£ã
> ãããšãã£ãŠãããã°ã©ã çµäºåŸã«åœ±é¿ãããããªäŸã¯ã
> ã©ãããååšããªãããã§ãã
ãããããã°Macã®ç°å¢ã®äŸãã¡ã£ãšãã§ãŠããŸãããã
(ããŸãåå ãã人ãããªã?)
> åã¯ãmallocã§åçã«å²ãåœãŠãã¡ã¢ãªã¯ãå¿
ãfreeã§è§£
> æŸããããã«ããŠããŸãã
ããããã°mallocãããã®ãå
šéšfreeããªããšæ°ãæžãŸãªãã®ã«ã
fopenã¯å
šéšfcloseããããšããããããªããšããå€ãªã²ãšãã¿ãããšãããŸãã
ãããã人ãããã®ã§ããã
> ãŸããç©æ¥µçã«freeããªãããšã䞻匵ãã人ãããŸãã
ããã¯ã©ãããçç±ããã§ããã£ã?
(以åã®èšäºã§èªãã æ°ããããã©èŠã€ãããªã...)
> è°è«ãé·åŒããŠããã®ã¯ã
>
> * ãããªãã«ãã¡ããšããOSãããå Žåã«çµäºçŽåã«free
> ããªããOSã«å¯Ÿããã¡ã¢ãªãªãŒã¯ãèµ·ããªãããš
>
> ããèŠæ Œããå°ãããã©ãããªã©ãèŠæ Œã«ãå³å¯ã«è§£éã
> ããšã©ããªãããšããããšã ãšæããŸãã
èŠæ Œã«ãfreeããªãã£ããããšãã£ãŠã¡ã¢ãªãŒãªãŒã¯ãããšããããã§ã¯ãªãããš
芪åã«æžããŠãããã°ããã®ã§ãã ;)
ã_ã ____________________________
ãã»ã» ã vo...@merope.pleiades.or.jp
( ° )ïœ æ¥äžéšéœäž
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ããããfree()ããã°malloc()ã§åå©çšã§ããããšãèŠå®ãããŠãã
> ããã§ãããfree()ããªããŠãããã»ã¹ããçµäºããã°åå©çšã§ãã
> ãšèŠå®ãããŠããã®ã§ããããïŒ
ããã»ã¹çµäºåŸã¯å©çšã®free()ããããããŸããã
å©çšãããããªãã®ã§ã¯ïŒãããã®ããã»ã¹ã¯ååšããªãã®ã ããã
ä»ã®ããã»ã¹ã«ãšã£ãŠå©çšã§ãããã©ããã¯ãfree()ãããã©ãã
ãšã¯ç¬ç«ã§ããããfree()ã¯ããšã®ããã°ã©ã ã«ãšã£ãŠåå©çšã§ããããã«
ããã ãã§ãä»ã®ããã»ã¹ã«å©çšã§ããããã«ãããšããèŠå®ã¯
ãªãã®ã§ãããã
éæŸãšè§£æŸã¯ã¡ãããšæããã
freeã¯malloc()ã§äœ¿ããããã«ãããšããããšã§ãããã
> free()ã§ã¯malloc()ã§ç¢ºä¿ããã¡ã¢ãªãå確ä¿ã§ããããã«ããã
(äžç¥)
> ãã free()ã®èŠå®ããmalloc()ã§ç¢ºä¿ããã¡ã¢ãªãéæŸãããŠããã
> ãšããããã«èªã¿åããã®ã§ãfree()ããã»ããè¯ããšãã倿ã«
> ããã£ãŠããããã§ãã
çµäºæã«ã¯ãå確ä¿ãã®ããšãèããªããŠããã®ã§ã¯?
ãªã®ã«ãªããããã»ãããããã«ãªãã®ã§ããã?
"KATAYAMA Yoshio" <ka...@pfu.co.jp> wrote in message
news:KATE.01F...@sims211.trad.pfu.co.jp...
> >ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
> >éšåãªã®ã§ãã
> >èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
> >ã®ã¯ã©ãããšãããã ãã§ãã
> >ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
> ãã®ã¹ã¿ã³ã¹ã§ããã°ã
> ã»free() ããã° OS ã§ã¡ã¢ãªãŒãªãŒã¯ããªã
> ãšããããšãèŠå®ãããŠããªãã®ã§ããã®ãããªåäœãæåŸ
ããŠã¯ãã
> ãŸããã
ã®éšåã§ããã
free()ããã®ã«OSã§ã¡ã¢ãªãŒãªãŒã¯ããã
malloc()ã§åå©çšã§ããªãã¯ãã ãã
free()ãèŠæ ŒãæºãããŠããªããšæãã®ã§ãã
ããã§ãANSIæºæ ãšåŒã¹ãã®ã§ããããïŒ
ããã§ããã
>> ãããããã°Macã®ç°å¢ã®äŸãã¡ã£ãšãã§ãŠããŸãããã
>> (ããŸãåå ãã人ãããªã?)
Machintosh ã®äººã¯ãäžèšç°å¢ã®äººãã㯠Cèšèªã䜿ããªãã®ã§ã¯
ãªãã§ããããã
( Pascal ã Fortran ã°ããããšæã£ãŠããŸããã)
>> ããããã°mallocãããã®ãå
šéšfreeããªããšæ°ãæžãŸãªãã®ã«ã
>> fopenã¯å
šéšfcloseããããšããããããªããšããå€ãªã²ãšãã¿ãããšãããŸãã
>> ãããã人ãããã®ã§ããã
ãªã»ããã¹ã€ãããæŒãã®ã¯å±ãªããšèšãã黿ºãONâOFFâONãã人
ãããŸããã
>> > ãŸããç©æ¥µçã«freeããªãããšã䞻匵ãã人ãããŸãã
>>
>> ããã¯ã©ãããçç±ããã§ããã£ã?
>> (以åã®èšäºã§èªãã æ°ããããã©èŠã€ãããªã...)
äž»ã«ã
* freeãããã³ã«page inããå±éºããã
* èšç®éã®é察称æ§
* ããããããã»ã¹ãé·åœãªã®ãééã
ãšããããšã ã£ããšæããŸãã
>> èŠæ Œã«ãfreeããªãã£ããããšãã£ãŠã¡ã¢ãªãŒãªãŒã¯ãããšããããã§ã¯ãªãããš
>>
>> 芪åã«æžããŠãããã°ããã®ã§ãã ;)
ããã¯ããããããã§ããã
ããã¯ãšããªãã§ãããã
å®éã®å®è£
ã§ããè¿ããã«ããŒã«ããŠãããŠãããããåå²ãåœãŠãããã
ããŸããã?
èŠæ Œã§ãmallocãããã®ã¯freeããªããã°ãããªãããšèŠå®ãããŠããªã以äžã
freeããªãã£ããããšãã£ãŠã¡ã¢ãªãŒãªãŒã¯ãããããªå®è£
ã¯èŠæ Œã«åã£ãŠãã
ãšã¯èšããªãã§ãããã
ããšãã°printfã3åé£ç¶äœ¿ã£ããæŽèµ°ãããããªå®è£
ããã£ããã
ããã¯èŠæ Œã«åã£ãŠãããšèšããªããã£ãŠã®ãšåãã ãšæããŸãã
> ãè¿ããªããŠãã¡ã¢ãªãªãŒã¯ããªãã
> ãšãæžããŠãŸãããã
printfã¯3åé£ç¶ã€ãã£ãŠãå¹³æ°ããšãæžããŠãªãã®ãšåãããšã ãšæããŸãã
# ãµããäžæ¥ãã§ãã¯ããŠããªãéã«ãå±±ã®ãããªèšäºã....
# ãã¯ã malloc & free ã話é¡ã«ãªããšã¹ã¬ããã®æé·ãéãéãã
Kusakabe Youichi wrote:
> ãã£ããæåŸ
ããã®ã§ãããã
> ãã®ãã竹æ¬ãããäžå¿ã«ãªã£ãŠäœããšããã®ã¯ã©ãã§ããã? :)
ãã£ããããã¯åž«ãäžçªçªã£èŸŒãŸããããªããšæã£ãŠãããšããã
ãçŽæéãçªããŠãã ãã£ãŠæãé£ãããããŸãã(^^;
æ¢ã«äœæž¡ããããéåžžã«ç¶²çŸ
çã§è©³çްãªFAQéãæçš¿ããŠäžãããŸããã
å°ãªããšãç§ã«ã¯ããããè¶
ãããã®ã¯æžããŸããã
æãé£ãããããŸã > äœæž¡ããã
> ãã£ã𿥿¬äººã®å¥œã¿ãªã®ã§ããã :)
> malloc&freeã®ã»ãããã«ãã€ã³ã¿ãŒãããã
> ãšããããã§ãæ¥æ¬äºº...ãšãããfjãŠãŒã¶ãŒåãã®FAQãäœã£ãŠãã ãã > 竹æ¬
> ãã
äœæž¡ããã®FAQéãèªãã§ã¿ãŠããã ã®FAQéã ãã§ã¯
è°è«ãç¹°è¿ãããã®ãæ¢ããããªããããªæ°ãããŠããŸããã
å°ããã€è«ç¹ããããŠããã®ããè²ã
ãªåºãããæãã
çãããèŠæ Œæžã®è¡éããOSã®éãããå¿ã®ã²ã ã®éãªã©ã«
ã©ãã©ãèžã¿èŸŒãã§ããã(^^;
ãã¯ãããåçã«ã¡ã¢ãªé åãååŸããããšããè¡çºã«ã
ã©ããæ¥æ¬äººã®å¿ã®çŽç·ã«è§Šãããã®ãæãã®ã§ãããã?
--
ç«¹æ¬ è¡ ãœããŒ(æ ª)PNC,PVC,DIéšé1éš
ãšããããã§ã
freeããæ¹ããªãŒã¯ããç°å¢ãå°ãªããªããšèããŸãã
ããš
* ããšã§freeããããã«ã¯ãã®ããã«ããŒã¿æ§é ãèšèš
ããŠããå¿
èŠããã(freeããªããŠãããã°ããŒã¿æ§
é ããã£ãšç°¡åã«ã§ããå¯èœæ§ããã)
ãšããçç±ããããŸããã
ãã®è³ªåã¯ç¡æå³ã§ãã
ãfree()ããããšã§åå©çšããããšãã£ããšãã誰ãå
å©çšãããã®ããšããã°ããã®ããã»ã¹ãã§ããããã»
ã¹ãçµäºããããšã§ã¯ãããããåå©çšããããã£ãŠã
ãäž»äœãååšããŸããã
ããªãŒã¯ãã®æå³ãéã£ãŠãŸããã
> ïŒåŸè
ã ãšããã»ã¹ãçµäºããã°ã¡ã¢ãªã¯ãã¹ãŠéæŸãããã®ã§
> ïŒåå²ãåœãŠã§ããããšåè«ããããã§ãããããã£ãŠããã»ã¹ã
> #çµäºããŠãã¹ãŠOSãéæŸãã¡ãã£ããããªãŒã¯ããšã¯åŒã°ãªãã®ã§ã¯ïŒ
OSãããã»ã¹ã«æž¡ããã¡ã¢ãªãŒããããã»ã¹ãçµäºããŠ
OSãéæŸãããŠãåãæ»ããªãã£ãå ŽåããOSã®ã¡ã¢ãª
ãŒãªãŒã¯ãã§ãã
> malloc()ã§åå²ãåœãŠã§ããããã«ãªãã®ã ããã
> ãã¡ã¢ãªãªãŒã¯ãã¯ãªããšããããŸãã
ããã»ã¹ã®çåäžã¯malloc()ã§åå²ãåœãŠå¯èœã«ãªã£ãŠ
ããŠãããã®ã¡ã¢ãªãŒãmallocã€ã³ã¿ãŒãã§ãŒã¹ããã
ããç¶æ
ã§ããã°ããã»ã¹çµäºæã«OSã«è¿ããªãå¯èœæ§
ã¯æ®ããŸãããã®ãããªç¶æ
ããfree()ããã®ã«ã¡ã¢ãª
ãŒãªãŒã¯ããããšåŒãã§ããŸãã
ãããããæ æ°ãªç§ã«æ¿ãã£ãŠããããããŠãã ãã£ãŠ
ããããšãããããŸããåé¡ããããããªãèšæ£ãå
¥ã
ãŸãã®ã§...ã
>> ãã¡ã¢ãªãŒãªãŒã¯ãã«ãOS ã§ã®ãªãŒã¯ãšãããã»ã¹ã§ã®ãªãŒã¯ã®ïŒçš®
>> é¡ããããšãèªèããŠããŸããããã®ã¹ã¬ããã§è°è«ã®å¯Ÿè±¡ãšãªã£ãŠã
>> ãã®ã¯åè
ã®ããšã§ããããªãŒã¯ããŠããã®ã«åå²ãåœãŠã§ãããã§ã
>> ããã¯åŸè
ã§ããã
>ãããåè
ã§ãããã§ãã
>ããã¯ããªãŒã¯ããŠããã®ã«åå²ãåœãŠã§ããã®ãïŒã
>ã£ãŠããšã§ãã
ãã£ãšæå³ãåãããŸããããOS ã®äžã§ãªãŒã¯ããŠããã®ã«ãããã
ïŒã©ããã®ããã°ã©ã ã§ïŒäœ¿ãããšãã§ããã®ãããšããããšã§ããã
ããã§ãããã
誰ããããªããšã¯è°è«ããŠããŸãããOS ã®äžã§ã©ã®ããã«åããŠ
ãããæ°ã«ããŠãã人ã¯ïŒSugihara ãã以å€ïŒèª°ãããŸãããè°
è«ã«ãªã£ãŠããã®ã¯ãOS ã§ã®ã¡ã¢ãªãŒãªãŒã¯ã®çµæã·ã¹ãã ããŠ
ã³ãèµ·ãããã€ãŸã C ããã°ã©ã ãå®è¡ããçµæã·ã¹ãã ããŠã³
ãèµ·ããã®ã¯ãèŠæ Œã«æºæ ããåäœã§ãããã«ã€ããŠã§ãã
ãçã§ãã
>#çµäºããŠãã¹ãŠOSãéæŸãã¡ãã£ããããªãŒã¯ããšã¯åŒã°ãªãã®ã§ã¯ïŒ
C ããã°ã©ã å ã§ã®ãªãŒã¯ãšã¯ã
ãŸã malloc() ãè¡ãªããªããã°ãªããªãã®ã«ãäžèŠã«ãªã£ãé å
ã free() ããŠããªãããš
ã§ãããã®çµæãé åäžè¶³ã§ããã°ã©ã ãç¶è¡ã§ããªããªã£ãŠããŸãã
ãšãåé¡ã«ãªããŸãã
ããã§è°è«ããŠããã®ã¯ããããããšã§ã¯ãªãããçµäºããŠãã¹ãŠOSã
è§£æŸãããã®ããšããããšã§ããããªãïŒã§ããªãïŒéšåãããã° OS
å
éšã§ã®ãªãŒã¯ãšãªããŸãã
>> >ã ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ããã
>> >éšåãªã®ã§ãã
>> >èŠå®ãã«ç¡ã以äžãã®ãããªåäœãæåŸ
ããŠãã
>> >ã®ã¯ã©ãããšãããã ãã§ãã
>> >ïŒå€ãã®å®è£
ã§åé¡ãªããšããã®ã¯èªããŸããã
>> ãã®ã¹ã¿ã³ã¹ã§ããã°ã
>> ã»free() ããã° OS ã§ã¡ã¢ãªãŒãªãŒã¯ããªã
>> ãšããããšãèŠå®ãããŠããªãã®ã§ããã®ãããªåäœãæåŸ
ããŠ
>>ã¯ãããŸããã
>malloc()ã§åå²ãåœãŠã§ããããã«ãªãã®ã ããã
>ãã¡ã¢ãªãªãŒã¯ãã¯ãªããšããããŸãã
ããã®ãã¡ã¢ãªãŒãªãŒã¯ã㯠OS å
éšã§ã®è©±ã§ãããªãŒã¯ã®åå ãšãªã£
ã C ããã°ã©ã ã¯æ¢ã«çµäºããŠããŸãããã®é åãå床䜿ããããã¯ã
ãmalloc()ã§åå²ãåœãŠããšã¯é¢ä¿ãããŸããããmalloc()ã§åå²ãåœ
ãŠãã¯ãfree() ã§è¿åŽãããã¡ã¢ãªãŒã«ã€ããŠã®ããšã§ãããªãŒã¯ã®
åå ãšãªã£ã C ããã°ã©ã ã¯çµäºããŠããŠãçŸåšå®è¡äžã® C ããã°ã©
ã ãšã¯å
šãé¢ä¿ãããŸãããæŽã«ä»ãå ãããªããfree() ã§è¿åŽãã
ãªãã£ãã¡ã¢ãªãŒããªãŒã¯ã®åå ã§ãããããfree() ã§è¿åŽãããã¡
ã¢ãªãŒããšã¯å
šãç¡é¢ä¿ã§ãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
>èŠæ Œã§ãmallocãããã®ã¯freeããªããã°ãããªãããšèŠå®ãããŠããªã以äžã
>freeããªãã£ããããšãã£ãŠã¡ã¢ãªãŒãªãŒã¯ãããããªå®è£
ã¯èŠæ Œã«åã£ãŠãã
>ãšã¯èšããªãã§ãããã
èŠæ ŒãèŠå®ããŠããã®ã¯ãããã°ã©ã ãèµ·åãããç¬éãã忢ããç¬
éãŸã§ã§ãããã®ã¡ã¢ãªãŒãªãŒã¯ã¯ããã°ã©ã çµäºåŸã® OS å
éšããšã§
ããããäœãèµ·ããããšèŠæ Œãšã¯é¢ä¿ãããŸããã
ïŒèŠæ Œãšã¯é¢ä¿ãªããšããã§ãã°ãšåŒã°ãããããããŸãããããã
>ããšãã°printfã3åé£ç¶äœ¿ã£ããæŽèµ°ãããããªå®è£
ããã£ããã
>ããã¯èŠæ Œã«åã£ãŠãããšèšããªããã£ãŠã®ãšåãã ãšæããŸãã
ããã¯å®è¡ã®éäžã§åäœãç¶ç¶ã§ããªããªã£ãŠããŸããããabstract
machine ãšã¯ç°ãªãåäœã«ãªããŸãã®ã§èŠæ Œæºæ ã§ã¯ãããŸããã
äž¡è
ã¯ãåããã§ã¯ãããŸããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
Takemoto,Satoshi <take...@cv.sony.co.jp> wrote in message news:3A7A6AD7...@cv.sony.co.jp...
> 竹æ¬ã§ãã
>
> # ãµããäžæ¥ãã§ãã¯ããŠããªãéã«ãå±±ã®ãããªèšäºã....
> # ãã¯ã malloc & free ã話é¡ã«ãªããšã¹ã¬ããã®æé·ãéãéãã
ïŒ
> Kusakabe Youichi wrote:
> > ãã£ã𿥿¬äººã®å¥œã¿ãªã®ã§ããã :)
> > malloc&freeã®ã»ãããã«ãã€ã³ã¿ãŒãããã
> > ãšããããã§ãæ¥æ¬äºº...ãšãããfjãŠãŒã¶ãŒåãã®FAQãäœã£ãŠãã ãã > 竹æ¬
> > ãã
ïŒ
> ãã¯ãããåçã«ã¡ã¢ãªé åãååŸããããšããè¡çºã«ã
> ã©ããæ¥æ¬äººã®å¿ã®çŽç·ã«è§Šãããã®ãæãã®ã§ãããã?
æ¥æ¬äººç¹æã®éç®±ã®é
ãã€ã€ããããªå ã®æãšããèŠããªã
ãæŽèœãªæãšããçºæ®ãæãã£ãŠãã¿ããªããããèèãã
ãã®ããã
# malloc & free äžçå人èžã³ã³ãã¹ã(ã©ããªãã ^^;)ãš
# ããã£ãããã³ããã§æ¥æ¬äººã®å¿åãå€ãã£ããããŠã(^^;
## ã»ãšãã©è¶ã ã§ãã;-)
--
Narita Takaoki @A.I.SOFT,INC.
ãïŒïŒåéã§æ±ºæããçãçç±ãæ·»ããã
ããã®ããã»ã¹ãã ãã«éå®ã§ããããã§ã¯ãªããšããããŸãã
ããã¯ããã¹ãŠã®ããã»ã¹ãã䜿ãããããªã°ããŒãã«ãªã¡ã¢ãªãã
malloc()ãã¡ã¢ãªã確ä¿ããŠãã«ã¯æºæ ããŠãããšãããŸãããã
ãã®ãããªå Žåã¯ãã»ãã®ããã»ã¹ãšããã©ããã®é åã䜿ããªã
ãªããšæããŸãã
ããã»ã¹ãçµäºãããããã®ããã»ã¹ã䜿çšããŠããã¡ã¢ãªã
ãã¡ãããšååããŠããããã©ããã¯ïŒ£èšèªãšã¯é¢ä¿ãªã
ãšããã®ã¯ãã®ã¹ã¬ããã«åå ããŠããå
šå¡ãäžèŽããŠãããšæããŸããã
ANSI Cã§malloc()ããã¡ã¢ãªã¯ããã»ã¹ã®çµäºã«ãã確å®ã«ïŒ¯ïŒ³
ã«è¿åŽããããšèŠå®ãããŠãããã®ãããªè¡šçŸãããã®ãæ°ã«å
¥ããªã
ã ãã§ãã
äžèšã®ãããªå®è£
ã§ããªããã§ããããæ©çš®äŸåãã衚çŸãš
åãåããŸããåã®ã¹ã¬ããã§ãå¿
ãããã§ã¯ãšããïŒïŒã
ã§ã¯ãšãã£ãŠãããã»ã»
fj.comp.lang.cã®èšäº<95dlhv$ovu$1...@news.tut.ac.jp>ã§
sa...@smlab.tutkie.tut.ac.jpããã¯æžããŸããã
> >> > ãŸããç©æ¥µçã«freeããªãããšã䞻匵ãã人ãããŸãã
> * freeãããã³ã«page inããå±éºããã
> * èšç®éã®é察称æ§
> * ããããããã»ã¹ãé·åœãªã®ãééã
In article <95dqsr$5mf$1...@ns.src.ricoh.co.jp> ,
oh...@src.ricoh.co.jp (Junn Ohta) writes
>* ããšã§freeããããã«ã¯ãã®ããã«ããŒã¿æ§é ãèšèš
> ããŠããå¿
èŠããã(freeããªããŠãããã°ããŒã¿æ§
> é ããã£ãšç°¡åã«ã§ããå¯èœæ§ããã)
ããšã
* å
šéšãfree ããã®ã¯ãçµæ§ãèšç®éãããã
* ã©ãããäžæ¬ããŠfreeã§ããããã«ãmemory pool ãšããèšèšããã®ãæ®é
(ããããã·ã¹ãã ã§ã¯malloc/free ã¯å¯Ÿå¿ããªã)
ãªããŠã®ããããŸããã
ããã«ãfree ããªããŠå€§äžå€«ãªæ ¹æ ã«ã¯ã
Process ãç°åžžçµäºã㊠free ã§ããªãã£ãå Žåã«
察åŠã§ããªããããexitæã« free ãèŠæ±ãããããªå®è£
ã¯ãªã
ã£ãŠã®ããã£ããšæããŸãã
å人çã«ã¯ã
malloc ããã free ãã
ã¿ãããªããŸããªãã«ãããªããã®ãåçŽã«ä¿¡ãããããªããã°ã©ã
æ
床ãå«ãã§ããããã§ãäœæ
?ããã©ãããŠ?ãã远æ±ããã¹ãã ãš
æãã
---
Shinji KONO @ Information Engineering, University of the Ryukyus,
PRESTO, Japan Science and Technology Corporation
æ²³éçæ²» @ çç倧åŠå·¥åŠéšæ
å ±å·¥åŠç§,
ç§åŠæè¡æ¯èäºæ¥å£ããããç ç©¶21(æ©èœãšæ§æ)
ããã»ã¹ãçµäºããããã®ããã»ã¹ã䜿çšããã¡ã¢ãªã¯
ãã¡ãããšååããŠãããã
ãšããã£ããã§ããŠã£ãã
ãã§ã¯ãã®ãããªïŒ¯ïŒ³ãæ³å®ããŠããã
ãšåãåã£ãŠããŸããã
ïŒãšããããããã«åè«ããŠãã€ããã ã£ãã
> ããã§è°è«ããŠããã®ã¯ããããããšã§ã¯ãªãããçµäºããŠãã¹ãŠOSã
> è§£æŸãããã®ããšããããšã§ããããªãïŒã§ããªãïŒéšåãããã° OS
> å
éšã§ã®ãªãŒã¯ãšãªããŸãã
ãããªãã§ããã§ã¯
ãOSãè§£æŸããããšããæ³å®ããããŠããã®ã§ãããã
ã»ã»ã»äžç¥ã»ã»
> ããã®ãã¡ã¢ãªãŒãªãŒã¯ã㯠OS å
éšã§ã®è©±ã§ãããªãŒã¯ã®åå ãšãªã£
> ã C ããã°ã©ã ã¯æ¢ã«çµäºããŠããŸãã
ããã»ã¹ãçµäºããŠããªããšãã¯ããªãŒã¯ããŠãããšã¯èšããªããš
æããŸãããªããªããããã»ã¹ãçããŠãããªããã®ã¡ã¢ãªé åã¯
ããã»ã¹ããå©çšãããŠããç¶æ
ã ãšçè§£ããŠããããã§ãã
ãã®åã«åäœãããç°å¢ããããªããšããšèšãè°è«ã§
åéã€ããªããªãå¯èœæ§ãå€§ïŒæ±ïŒ
> "Junn Ohta" <oh...@src.ricoh.co.jp> wrote in message
> news:95dr4l$5mf$2...@ns.src.ricoh.co.jp...
> > fj.comp.lang.cã®èšäº<95dj19$cvp$1...@news.kyosai.or.jp>ã§
> > sugi...@kyosai.or.jpããã¯æžããŸããã
> > > ããããfree()ããã°malloc()ã§åå©çšã§ããããšãèŠå®ãããŠãã
> > > ããã§ãããfree()ããªããŠãããã»ã¹ããçµäºããã°åå©çšã§ãã
> > > ãšèŠå®ãããŠããã®ã§ããããïŒ
> > ãã®è³ªåã¯ç¡æå³ã§ãã
> > ãfree()ããããšã§åå©çšããããšãã£ããšãã誰ãå
> > å©çšãããã®ããšããã°ããã®ããã»ã¹ãã§ããããã»
> > ã¹ãçµäºããããšã§ã¯ãããããåå©çšããããã£ãŠã
> > ãäž»äœãååšããŸããã
>
> ããã®ããã»ã¹ãã ãã«éå®ã§ããããã§ã¯ãªããšããããŸãã
ãããã®ã¯åæã§ãããfree()ããããšã«ãã£ãŠåå©çšã§ãã
ãšæåŸ
ã§ããã®ã¯ãã®ããã»ã¹ã«éå®ãããŸãã
ä»ã®ããã»ã¹ã«ãšã£ãŠã©ããªããã¯èŠå®ãããŠããŸããã
> ããã¯ããã¹ãŠã®ããã»ã¹ãã䜿ãããããªã°ããŒãã«ãªã¡ã¢ãªãã
> malloc()ãã¡ã¢ãªã確ä¿ããŠãã«ã¯æºæ ããŠãããšãããŸãããã
> ãã®ãããªå Žåã¯ãã»ãã®ããã»ã¹ãšããã©ããã®é åã䜿ããªã
> ãªããšæããŸãã
ã ãããfree()ããããã£ãŠä»ã®ããã»ã¹ã«äœ¿ããããã«ãªã
ãšã¯éããªããã ã£ãŠã
倪ç°ããã®èšäºã«ã¯ãã€ãå匷ãããŠããã ããŠãããŸãã
åé¡ç¹ã®èšæ£çããã²ãé¡ãããŸãã
ã¹ã¬ãããã²ãããèš±ãã(Re: (FAQ listã)竹æ¬ãããäžå¿ã«ãªã£ãŠäœããšããã®ã¯ã©ãã§ããã?)ãã§ã®
take...@cv.sony.co.jpæ°ã®çºèš <3A7A6AD7...@cv.sony.co.jp> ããåŒçš
>> æ¢ã«äœæž¡ããããéåžžã«ç¶²çŸ
çã§è©³çްãªFAQéãæçš¿ããŠäžãããŸããã
>> å°ãªããšãç§ã«ã¯ããããè¶
ãããã®ã¯æžããŸããã
>>
>> æãé£ãããããŸã > äœæž¡ããã
ãããå
èšäºã®å€§éšåã¯ã倪ç°ãããšçå±±ããã®æçš¿ã§ãã
ç§ã¯ãéè¯ãQUEENããããŠããã®ã§æŸãéããããã ãã§ãã
å
èšäºãåºãããçãããããåé¡ç¹çã®ä¿®æ£ãããŠé ããã°ã
ãmalloc and freeãã®ãããã誀解ãšãã®åçéãåŸãããã®
ã§ã¯ãªãããšæã£ãŠãããŸãã
Kusakabe Youichi wrote in message ...
>ããšãã°printfã3åé£ç¶äœ¿ã£ããæŽèµ°ãããããªå®è£
ããã£ããã
>ããã¯èŠæ Œã«åã£ãŠãããšèšããªããã£ãŠã®ãšåãã ãšæããŸãã
printf() 3åã§ãããããªããããªç°å¢ã¯ãããããªããšæããŸããã
fprintf()ã§ããã¡ã€ã«ã«åãã£ãŠç¡éã«ãŒãã§åºåãç¶ãããã
ãã®ãã¡ã·ã¹ãã å
šäœããŸãšãã«åããªããªãOSã¯ãããšæãã
ã§ããã©ã
fprintf()ãç¶ããããã°ã©ã èªäœãæŽèµ°ããããããã¯åŠçç³»ã
èŠæ ŒãæºãããŠããªããšããããšã«ãªãã®ã§ããããããããã§ä»ã®
ããã»ã¹ãå°ã£ããšããŠãããããªããšã¯Cã®èŠæ Œã®ç¯å²å€ã§ãã
ãã£ãŠã
èŠæ Œã«åããŠããªãããã°ã©ã ãå®è¡ããŠå°ã£ãããšã«ãªããããª
ç°å¢ã¯ãèŠæ ŒãæºãããŠããªãã
ãªããŠäž»åŒµã¯ãæããã«ééã£ãŠãããšæããŸãã
------------------------------------------------------------
åæ© å匥 maeb...@cse.co.jp
http://member.nifty.ne.jp/maebashi/
------------------------------------------------------------
Junn Ohta wrote in message <95b92u$9pp$1...@ns.src.ricoh.co.jp>...
>ç§ãããããã®ã¯
>ã»ANSI Cã®ç°å¢ã§
>ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
>ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
>ãšããããšã ãã§ããããšã¯æèã§ãã
ãªãã§ãã?
èŠæ Œã«ã¯ã
ã»çµäºæã«malloc()ããé åãéæŸãããªããŠããšã¯ã©ãã«ãæžããŠãªã
ã»free()ããã°ãã®é åãOSã«è¿ããšãæžããŠãªã
ã»free()ããã°ãåŸã®malloc()ã§äœ¿ããããã«ãªãããšã ãæžããŠãã
ããã§ããã
**** 以äžèŠæ Œãšã¯ç¡é¢ä¿ã®å®è£ äžã®è©±ã§ã ****
ããç°å¢ãã
ã»çµäºæã«malloc()ããé åãéæŸããªã
ã»ããã€ãã®ããã»ã¹ã(åæã§ãªããŠã)å®è¡ã§ãã
ã®ã§ããã°ãããããç°å¢ã®äœæè ã¯ã
free()ããã°é
ããšãããã°ã©ã ã®çµäºæã«ã¯OSã«ã¡ã¢ãªãè¿ã
ãããªå®è£
ã«ããã§ããã
ããšã¯(ãããªãã«ã¯)æåŸ ã§ãããšæããŸãã
çµäºæã«åæã«ãã£ãŠããããããfree()ããŠãã ãã ã£ããã
ã¡ã¢ãªãªãŒã¯ãé²ãææ®µã *ãªã* ããšã«ãªã£ã¡ãããŸãããã
ããããç°å¢ã§ã¯ãexit()åã§ãfree()ããããšã«æå³ããããŸããã
# ä»ãŸãã«æžããŠããWindowsã®APIåŒã³åºããŸããã
# æäœå¿
èŠã¡ã¢ãª128Mãã€ãã®ããã°ã©ã ã§ã
# exit()åã«free()ããªãããããªããã©ããã¯ãŸãå¥ã®è©±ã
## sugi...@kyosai.or.jp wrote on 19:02, Feb. 02,'01 (Fri)
>> ãfree()ããããšã§åå©çšããããšãã£ããšãã誰ãå
>> å©çšãããã®ããšããã°ããã®ããã»ã¹ãã§ããããã»
>> ã¹ãçµäºããããšã§ã¯ãããããåå©çšããããã£ãŠã
>> ãäž»äœãååšããŸããã
>
>ããã®ããã»ã¹ãã ãã«éå®ã§ããããã§ã¯ãªããšããããŸãã
>ããã¯ããã¹ãŠã®ããã»ã¹ãã䜿ãããããªã°ããŒãã«ãªã¡ã¢ãªãã
>malloc()ãã¡ã¢ãªã確ä¿ããŠãã«ã¯æºæ ããŠãããšãããŸãããã
>ãã®ãããªå Žåã¯ãã»ãã®ããã»ã¹ãšããã©ããã®é åã䜿ããªã
>ãªããšæããŸãã
A. ããããã»ã¹ãfree()ããã¡ã¢ãªé åã¯ãfree()ãå®äºããæç¹ã§
ä»ã®ããã»ã¹ã䜿ããæ§ã«ãªãã
B. ããããã»ã¹ãfree()ããã¡ã¢ãªé åã¯ãfree()ãå®äºããæç¹ã§ã¯
ä»ã®ããã»ã¹ã䜿ããæ§ã«ã¯ãªããªãã
ããã»ã¹ãçµäºããæã«ããã®ããã»ã¹ã䜿ã£ãŠããå
šãŠã®ã¡ã¢ãªé åã
ä»ã®ããã»ã¹ã§äœ¿ããæ§ã«ãªãã
C. ããããã»ã¹ãfree()ããã¡ã¢ãªé åã¯ãfree()ãå®äºããæç¹ã§ã¯
ä»ã®ããã»ã¹ã䜿ããæ§ã«ã¯ãªããªãã
ããã»ã¹ãçµäºããæã«ããã®ããã»ã¹ã§free()ãããŠããã¡ã¢ãªé åã®ã¿ã
ä»ã®ããã»ã¹ã§äœ¿ããæ§ã«ãªãã
ãã®ãã¡ãæåããããèãã®åäœã«äžçªè¿ãã®ã¯ã©ãã§ããããã
========================================================= )| /
äº çº æº åœŠ Imachi Tomohiko (~' -
~)(~
e-mail: ima...@totoro.ec.t.kanazawa-u.ac.jp ,_(m_m
URL: http://totoro.ec.t.kanazawa-u.ac.jp/~imachi
> ãããªãã§ããã§ã¯
> ãOSãè§£æŸããããšããæ³å®ããããŠããã®ã§ãããã
ãªããåºçºç¹ã«æ»ã£ããããª...
In <95b92u$9pp$1...@ns.src.ricoh.co.jp> oh...@src.ricoh.co.jp (Junn Ohta) writes:
> ã»ANSI Cã®ç°å¢ã§
> ã»free()ããã°ã¡ã¢ãªãŒãªãŒã¯ããªãã®ã§ããã°
> ã»free()ããªããŠãã¡ã¢ãªãŒãªãŒã¯ããªãã ãã
èšãæãããšãfree()ããªããšã¡ã¢ãªãªãŒã¯ãã¡ãããããªOSã ãšãfree()ã
ãã£ãŠã¡ã¢ãªãªãŒã¯ããããšããããšã§ããANSI Cã«ã¯ã©ããªOSããŸãšãããª
ããŠèŠå®ã¯ãã¡ãããããŸãããããããªOS(ã©ããã£ãã£ãŠã¡ã¢ãªãªãŒã¯ã
èµ·ããOS)ã¯å®çšçãããªãã®ã¯ç¢ºãã§ãã? (ãŸãããããäŸã1ã€ãåºãŠãª
ãã®ã«ãããããããªã話ã°ããå¿é
ãç¶ããã®ã¯ããŸãå¥å
šãšã¯èšããŸãã
ãã)
> ããã»ã¹ãçµäºããŠããªããšãã¯ããªãŒã¯ããŠãããšã¯èšããªããš
> æããŸãããªããªããããã»ã¹ãçããŠãããªããã®ã¡ã¢ãªé åã¯
> ããã»ã¹ããå©çšãããŠããç¶æ
ã ãšçè§£ããŠããããã§ãã
æ€çŽ¢ãšã³ãžã³ã§X-Windowã®ã¡ã¢ãªãªãŒã¯ãšãããŒã¢ã³ã®ã¡ã¢ãªãªãŒã¯ãšããåŒ
ããŠã芧ãªããã
;;; çæ³¢å€§åŠ é»åã»æ
å ±å·¥åŠç³»(åŠè¡æ
å ±åŠçã»ã³ã¿ãŒ)
;;; åç°æŠåž (MAEDA Atusi) ma...@cc.tsukuba.ac.jp