3.字符串

一.字符串拷贝

void copy_str5(char *from, char *to)
{
    while (*from != '\0')
    {
        *to++ = *from++;
    }
    *to = '\0';

}



void main() {

    char *p = "abcdefg";
    char p2[100]; // 在栈区分配100个字节的内存,因为没有初始化,所以每个字节是乱码。

    copy_str5(p,p2);
    printf("current p2 is %s\n",p2);

    system("pause");

}

二.不要相信主调函数传入的内存空间

如:

void copy_str(char *from, char *to){

  if (*from != '\0') // 最好对传入的字符串进行判断
  {

    printf("dddd");
  }
}

三.数据越界(语法级别的越界)

char buf[3] = "abc"; // 事实上还有一个'\0'

四.不断的修改内存指针变量,一定要注意,在释放时,要拿到内存的首地址进行释放。

 

posted @ 2017-05-09 10:29  夜行过客  阅读(166)  评论(0编辑  收藏  举报