正文

库函数使用说明2008-01-12 18:55:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/vfdff/32027.html

分享到:

#include <stdlib.h>
#include <stdio.h>
#include <string.h>

const int NUM = 5 ;                // number to be converted max=65535

typedef char* pchar ;

FILE *text ;

int main()
{
    pchar fname = (pchar)malloc(sizeof(char)*10) ;
    pchar buf = (pchar)malloc(NUM);
 int i = 0;

    for(i=0;i<40;i++)
 {
  printf("%4d",fname[i]);
 }
 printf("\n");
 fname[9] = '\0';
 //
 strset(fname,'\0');

    for(i=0;i<40;i++)
 {
  printf("%4d",fname[i]);
 }
 printf("\n");
    for(i=0;i<2;i++) // for(i=0;i<4;i++) fname溢出,使free(fname)出错
    {
        //strset(fname,'\0');
        strcat(fname,"c:\\z");
        puts(buf); 
        puts(fname);     
    }
    free(buf);
    free(fname);
    return 0;
}

strcat 函数不检查字符串的长度,只是把两个串拼接
strset 函数并是把'\0'前的所有字符串设置为一个值,而不是对所有的,所以在strset 函数使用前如果没有对所使用的指针初始化赋值(在声请的合法空间内赋'\0'或者0表明字符串的结束位置)
free 函数也是把指针首地址到第一个'\0'的那段字符串空间给释放掉,也就是字符串指针的操作大都是基于结束符'\0'的

阅读(3104) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册