zoukankan      html  css  js  c++  java
  • C语言零碎记录之strcat【你必须知道的495个C语言问题 电子书下载】

    刚才看了看 你必须知道的495个C语言问题 ,在7.3内存分配 strcat问题上

    发现strcat原来是不进行自动分配内存空间的...我晕...strcat是将*s2的字符串附加到*s1上,由于是pointer,所以无法检测内存溢出问题.只能由使用者自行判断.也就是 strcat(char *s1,char *s2) s1的空间 必须 至少是 strlen(s1)+strlen(s2)+1的值.否则内存溢出.

    本来我自己写了一个类似的函数,然后发现有个strcat和我写的函数效果一样,就用strcat了.但是其实我写的函数内部有空间分配的!!这个strcat没有.于是呼,我的程序必然有内存泄露或溢出之类的.

    =====================================

    再次鄙视 Cnblogs的 文件系统. 上传路径 居然不能有空格 太搞笑了,没见过这的,如果考虑安全还是学学chinaUnix的或其他的按照日期随机数保存文件名吧...

    贴上  你必须知道的495个C语言问题 下载

    你必须知道的495个C语言问题

     我自己写个 是char * strplus(char *s1,char *s2); 具体实现稍后贴上.

     
    1 char * strplus(const char a[],const char b[]){
    2     //USAGE: strplus("aaa","bbb");//a[]="aaa";b[]="bbb";
    3     //printf("strlen %d + %d\n",strlen(a),strlen(b));//3+3 no '\0'
    4     //printf("sizeof %d + %d\n",sizeof(a),sizeof(b));//4+4
    5
    6     char * spp=malloc(strlen(a)+strlen(b)+1);
    7     memcpy(spp,a,strlen(a));
    8     memcpy(spp+strlen(a),b,strlen(b));
    9     memset(spp+strlen(a)+strlen(b),(int)'\0',(size_t)1);
    10     return spp;
    11 }

    转载请注明出处:http://www.cnblogs.com/ayanmw 多谢

    ------------------------------------------------------------------------------------------------

    一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。

  • 相关阅读:
    一本通1331后缀表达式的值
    一本通1198 逆波兰表达式
    一本通1311 求逆序对(归并排序应用)
    快速排序
    一本通1310 车厢重组(冒泡排序,类似逆序对)
    一本通1186 出现次数超过一半的数(类似桶排序)
    一本通1216 红与黑 (代码没有参考任何博客,完全是自己写的,我搜索出山了!!!)
    一本通1222 放苹果
    一本通 1212 LETTERS
    一本通1215 迷宫
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2302633.html
Copyright © 2011-2022 走看看