一.字符串拷贝

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'

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

 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-22
  • 2021-10-27
  • 2022-03-02
  • 2021-11-15
  • 2021-09-22
  • 2021-12-16
猜你喜欢
  • 2021-05-28
  • 2022-12-23
  • 2021-08-22
  • 2021-09-06
  • 2021-04-17
  • 2022-01-22
相关资源
相似解决方案