malloc申请一块内存后
一般要 memset初始化为0(也就是'\0')
选择这个初始值是为了:求字符串实际长度采用的函数strlen,判断字符串结束的标志就是'\0'。问题就是如何确保我给这块内存赋予的值中不含有这个字符呢(也就是值0)?

解决方案 »

  1.   

    赋值的时候就是\0结尾了,用strcpy等,就是以这个结束的
      

  2.   

    重新把问题具体化首先申请1000字节的空间
    然后给这块空间全部赋0
    然后给空间赋初值(一张rgb图片数据,比1000字节少)
    求具体长度
    如果rgb图片数据中含有0(应该很容易发生,黑白像素点的数据就可能是),怎么求图片的大小
      

  3.   

    目前有一个函数返回这块图片数据的缓存(由char*变量保存),但大小不知道,但通过函数strlen求不出来。
      

  4.   

    图片数据就是用char*存储的啊
      

  5.   

    含0的字符串的处理不能用strlen
      

  6.   

    char*指向的不一定是字符串,任何类型的指针都可以相互转换。因为char类型占1字节,所以很多地方用char*表示内存缓冲区。