¼±ÎʸöcµÄÃæÊÔÌâ
C/C++ code:
void p1(const char **pname)
{
const char *name = "test1";
*pname = name;
}
void p2(const char **pname)
{
char *name = "test2";
*pname = name;
}
void p3(const char **pname)
{
char name[] = "test3";
*pname = name;
}
int main()
{
const char *name;
p1(&name);
printf("%s\n",name);
p2(&name);
printf("%s\n",name);
p3(&name);
printf("%s\n",name);
return 0;
}
´ð°¸ÊÇ test1 ºÍ test2¶¼ÄÜ´òÓ¡³öÀ´ test3²»ÄÜ´òÓ¡ÊÇgarbage
˵string¡°test1¡±ºÍ"test2"¶¼ÊÇglobal allocated onstatant
string"test3"ÊÇÔÚstackÉϵÄ
ÎÒ¾õµÃÕâ¸ö²»¶Ô°É~~
mainÀïÃæµÄconst char*name; ¼ÈÈ»const ¶¨ÒåµÄʱºò¾ÍÓ¦¸ÃÂíÉϸ³Öµ°É~
ÎÒ¾õµÃ"test1","test2","test3" ¶¼ÊÇÔÚstackÉϵÄ
Çë¸ßÈËÖ¸µã
лл
p1 p2ÖеÄname¶¼ÊÇÖ¸Õ룬ָÏòÁ˳£Á¿×Ö·û´®£¬Õâ¸öµØÖ·ÊÇÈ«¾ÖµÄ£¬²»»áÏú»Ù¡£
p3ÖÐnameÊǸöÊý×飬ÔÚstackÖУ¬²¢Óó£Á¿×Ö·û´®¸³Öµ¡£nameµÄµØÖ·²»Êdz£Á¿×Ö·û´®µÄµØÖ·£¬ËùÒÔº¯ÊýÍ˳öºóÏú»ÙÁË¡£
ȷʵ¿ÉÒÔ´ò³öÀ´£¬Ö¸ÕënameÊÇÔÚstackÉÏ£¬µ«¡°test1","test2"ÕâЩ×Ö·û´®ÊÇÔÚ¾²Ì¬´æÖüÇø
ËùÓеÄ×Ö·û´®×ÖÃæÖµ¶¼ÊÇ·ÖÅäÔÚ³£Á¿ÇøµÄ£¬ÕâÈý¸ö¶¼ÊÇÔÚ³£Á¿ÇøµÄ£¬Ç°Á½¸öÊǶ¨ÒåÖ¸ÕëÖ±½ÓÖ¸ÏòÕâ¿é³£Á¿Çø£¬ËùÒÔÄÜ´ò³öÀ´£¬µÚÈý¸öÊÇÏÈ·ÖÅäÒ»¸öÊý×éÈ»º
Ïà¹ØÎÊ´ð£º
QQȺ 29152388
ÓÑÇéUP
°ï¶¥
up
°ïup
up Ö§³Ö£¡
up jf
...ÄѵÀÓзÖ..?
up up up
Ï£ÍûÓеüӷ֣¬¹þ¹þ¡£
Ö§³Ö£¬ÎÒ¼ÓÁË£¬Ï£ÍûÂ¥Ö÷ÄܼÓÎÒ£¬¹²Í¬Ñ§Ï°¹þ
¼ÓÁË¡£
¶¥ÉÏ£¬Ã¿ÌìÊÕ»ñÒ»µã£¬Ö§³Ö ......
CÅÌ9G£¬ËãÁËһϸ÷ÖÖÎļþ°üÀ¨ÒþÐÎ×ܹ²²»µ½2G£¬¿ÉÊÇϵͳÏÔʾֻʣÓà1¸ö¶àG£¬ÎÒÒѾ½«¸÷ÖÖÁÙʱÎļþ¶¼É¾³ýÁË£¬°üÀ¨´ÅÅÌÇåÀí£¬Ôõô»ØÊ£¿Ð»Ð»»Ø´ð
ʲôϵͳ£¿
ÐéÄâÄÚ´æÉèÖõ½ÆäËüÅÌ£»
¹Ø±Õϵͳ»¹Ô£»
ɾ³ýÐ ......
ΪʲôCдµÄDLLÎļþC¡¢PBÄܵ÷ÓÃVB²»Äܵ÷Óã¿
VBÀïΪʲôÓеÄDLLÖ±½Óͨ¹ýÒýÓÿÉÒÔʹÓã¿ÓеÄÐèҪͨ¹ýdeclareÉêÃ÷Íⲿº¯Êý£¿ÕâЩDLLÓÐʲô²î±ð£¿
1¡¢ÎªÊ²Ã´PBÄÜͨ¹ýDECLAREÉùÃ÷¶øVB²»ÐУ¿
2¡¢Èç¹ûÕâ¸ödllÖÐµÄ ......
ÎÒÓÃPHPÀ©Õ¹Cʱ£¬ÓõÄÊÇÔ´ÂëextĿ¼ÏµÄ./ext_skel
×îºó±àÒë×ÜÊDz»ÄÜÉú³ÉÀ©Õ¹Ä£¿éµÄ.so¶¯Ì¬¿â£¬ÎÒÓõİ汾ÊÇ5.3.0£¬
ÕâÊÇÔõô»ØÊ£¬¸ßÊÖ½â´ðÏÂ
²»ÄÜÉú³ÉʱÓÐɶÌáʾÐÅÏ¢£¿
ÔËÐÐÁË/ext_skel --extname=Ä ......