C¿ª·¢ÖжѺÍÕ»µÄ²î±ð
1£¬Õ»Çø£¨stack£©— ÓɱàÒëÆ÷×Ô¶¯·ÖÅäÊÍ·Å£¬´æ·Åº¯ÊýµÄ²ÎÊýÖµ£¬¾Ö²¿±äÁ¿µÄÖµµÈ¡£Æä²Ù×÷·½Ê½ÀàËÆÓÚÊý¾Ý½á¹¹ÖеÄÕ»¡£ ÀýÈ磬ÉùÃ÷ÔÚº¯ÊýÖеÄÒ»¸ö¾Ö²¿±äÁ¿int b£»ÏµÍ³×Ô¶¯ÔÚÕ»ÖÐΪb¿ª±Ù¿Õ¼ä¡£Ö»ÒªÕ»µÄÊ£Óà¿Õ¼ä´óÓÚËùÉêÇë¿Õ¼ä£¬ÏµÍ³½«Îª³ÌÐòÌṩÄڴ棬·ñÔò½«±¨Òì³£ÌáʾջÒç³ö¡£±ÈÈ磺
char* AllocStrfromStack()
{
¡¡¡¡¡¡¡¡char pstr[100];
¡¡¡¡¡¡¡¡return pstr; //ÓÃÊý×éÄ£ÄâÕ»
}
¶ÔÓڸú¯Êý£¬ÄÇ¿épstrµÄÄÚ´æÔÚº¯Êý·µ»ØÊ±¾Í±»ÏµÍ³ÊÍ·ÅÁË£¬Ö»ÔÚº¯ÊýÄÚ²¿µ÷ÓÃʱ²ÅÓУ¬Æäʵ·µ»ØµÄchar*ʲôҲûÓС£
Ϊ´Ë×ö¹ýÒ»¸öʵÑ飺
#include "stdafx.h"
#include "string.h"
char * AddReturn()
{
char s[]="abcdef";
unsigned char n=sizeof(s)/sizeof(char);
printf("%d\n",n); //7
printf("%d\n",strlen(s)); //6
for(unsigned char i=0;i<n;i++)
printf("%c",s[i]);
printf("\n");
return s; //·µ»ØµØÖ·ºó£¬¾Í²»ÔÚÊÇ×Ö·û´®µØÖ·ÁË£¬ÒòΪÊǾֲ¿±äÁ¿£¬ÔÚÕ»ÖÐ
}
int main(int argc, char* argv[])
{
char *u;
u=AddReturn(); //·µ»ØÁËÒ»¸öÖµ£¬µ«ÊÇÎÞЧµÄ¡£
for(unsigned char i=0;i<7;i++);
printf("%c",u[i]); //Êä³öµÄÊÇÂÒÄÚÈÝ
return 0;
}
ÔÚWindowsÏ£¬Õ»ÊÇÏòµÍµØÖ·À©Õ¹µÄÊý¾Ý½á¹¹£¬ÊÇÒ»¿éÁ¬ÐøµÄÄÚ´æµÄÇøÓò¡£Õâ¾ä»°µÄÒâ˼ÊÇÕ»¶¥µÄµØÖ·ºÍÕ»µÄ×î´óÈÝÁ¿ÊÇϵͳԤÏȹ涨ºÃµÄ£¬Èç¹ûÉêÇëµÄ¿Õ¼ä³¬¹ýÕ»µÄÊ£Óà¿Õ¼äʱ£¬½«Ìáʾoverflow¡£
2£¬¶ÑÇø£¨heap£© — Ò»°ãÓɳÌÐòÔ±·ÖÅäÊÍ·Å£¬ Èô³ÌÐòÔ±²»ÊÍ·Å£¬³ÌÐò½áÊøÊ±¿ÉÄÜÓÉOS»ØÊÕ¡£×¢ÒâËüÓëÊý¾Ý½á¹¹ÖеĶÑÊÇÁ½»ØÊ£¬·ÖÅ䷽ʽµ¹ÊÇÀàËÆÓÚÁ´±í¡£¿ÉÄÜÓõ½µÄ¹Ø¼ü×ÖÈçÏ£ºnew¡¢malloc¡¢delete¡¢freeµÈµÈ¡£ÔÚcÖÐmallocº¯ÊýÈçp1 = (char *)malloc(10)£»µ«ÊÇ×¢Òâp1±¾ÉíÊÇÔÚÕ»Öеģ¬ÒòΪËûÃÇ»¹ÊÇ¿ÉÒÔÈÏΪÊǾֲ¿±äÁ¿¡£±ÈÈ磺
ch
Ïà¹ØÎĵµ£º
Cר¼Ò±à³Ì ¾«±àÖ®Ò» µÚÒ»ÕÂ~µÚÈýÕÂ
CµÄ¸´ÔÓÖ®´¦ ÔÚÓÚËüµÄÖ¸Õë ,µ«ÊÇ±ÈÆäÖ¸Õë¸üΪ¸´ÔÓµÄÊÇËüµÄÉùÃ÷ !!!
ÄãÄÜ¿´¶®ËüÃǵÄÒâ˼ Âð?
apple=sizeof(int)*p ; apple=sizeof * p;
j= (char (*)[20])malloc(20);
int const * grape; Óë int * const gr ......
µ±ÄãÂòÁĘ̈еçÄÔʱ£¬¾õµÃÐÔÄÜ£¬ËÙ¶È£¬Äã¶¼±È½ÏÂúÒ⣬µ«ÊÇËæ×Åʱ¼äÍÆÒÆ£¬Äã¾õµÃÄãCÅ̿ռäÔ½À´Ô½Ð¡£¬ËÙ¶ÈÒ²½µÏÂÁË£¬ÄÇÎÒÃǸÃÔõô°ìÄØ£¿
¶ÔÓÚ²ËÄñÀ´Ëµ£¬ÓÐÒ»µãÄã±ØÐë×¢Ò⣺µ±ÄãÏÂÔØ¶«Î÷£¬ÓÐÐ©ÍøÕ¾ÊÇĬÈÏCÅÌ£¬Õâʱ¿ÉÒÔÑ¡ÔñÏÂÔØÅÌʱ£¬×îºÃ·ÅÔÚÆäËûÅÌÀ²»¿ÉÒÔÑ¡ÔñҲû°ì·¨£¬CÅÌÀïµÄÎļþÒ²ÊDz¡¶¾Ï²»¶ ......
³ÌÐò¿ªÍ·ÒªÉùÃ÷
#include <string.h>
º¯ÊýÃû: stpcpy
¹¦ ÄÜ: ¿½±´Ò»¸ö×Ö·û´®µ½ÁíÒ»¸ö
ÓÃ ·¨: char *stpcpy(char *destin, char *source);
³ÌÐòÀý:
#include <stdio.h>
#include <string.h>
int main(void)
{
char string[10];
char *str1 = "abcdefghi";
&n ......
¿ª·¢ÔËÐÐÔÚSoCÄÚµÄǶÈëʽ´¦ÀíÆ÷Äں˵ijÌÐòʱ£¬¹¤³ÌʦÓÐÁ½¸öÖ÷ҪĿµÄ£ºÔËÐеÃ×ã¹»¿ì£¬Ê¹´¦ÀíÆ÷ÔËÐÐµÄÆµÂʽµµ½×îµÍ£»ÏûºÄ¾¡Á¿ÉÙµÄÄڴ棬ʹÄڴ濪Ïú½µµ½×îС¡£
¶ÔÓÚ²»Í¬µÄÏ ......