当前位置:  技术问答>NOSQL iis7站长之家

关于char*,char[]

    来源: 互联网  发布时间:2015-05-04

    本文导语:  一个程序定义了两个char*,str1定义在本函数体内,str2定义在头文件中,已include了, 在本函数体内做如下初始化: char* str1; str1=(char*)malloc(sizeof(char)*40); str2=(char*)malloc(sizeof(char)*40); str1指向的字符串内容经常变动,如: s...

一个程序定义了两个char*,str1定义在本函数体内,str2定义在头文件中,已include了,
在本函数体内做如下初始化:
char* str1;
str1=(char*)malloc(sizeof(char)*40);
str2=(char*)malloc(sizeof(char)*40);
str1指向的字符串内容经常变动,如:
str1="abcd";
然后把值传给str2:
str2=str1;
用str2作为参数传给myfun函数,由该函数处理这个字符串
myfun(str2);----该函数定义在同一个c文件中
free(str2);
这个函数到此结束
上面free(str2)可以,后面如果跟free(str1)出错
为什么?谁能告诉我什么时候free定义初始化过的char*?
那str1什么时候free?

(2)char s[23]
这样的char一定要先用memset初始化吗?

|
str2=str1 这句让str1和str2指向同一个地址,你free(str2)时已经把那个地址释放了,如果再调用free(str1)等于又释放一次,所以出错
字符串初始化不是必需的,编译也可以通过,但是有些条件下可能会出意想不到的错啊:)

|
str2=str1是将str2指针指向了str1,并不是内容的复制。
你的free(str2)其实是将str1指向的空间释放掉了。
应该用strcpy(str2,str1)才对。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql类types的类成员方法: char定义及介绍
  • u_char数据类型?u_char与char是什么关系?
  • java命名空间javax.lang.model.type枚举typekind的类成员方法: char定义及介绍
  • 判斷兩個char[]相等用什麽函數?我用(char1.equals(char2))它總是認爲不等,爲什麽??
  • java命名空间java.awt.event类keyevent的类成员方法: char_undefined定义及介绍
  • const char 和char 的转换问题
  • java命名空间javax.print类docflavor.char_array的类成员方法: text_plain定义及介绍
  • 原来char c=70和char c='u0070'有区别的
  • java命名空间java.awt.font类textattribute的类成员方法: char_replacement定义及介绍
  • 谁能告诉我char*被强制转化成char**,内部是怎么运算的?
  • java命名空间javax.print类docflavor.char_array的类成员方法: text_html定义及介绍
  • main(int argc,char *argv[])和main(int argc,char **argv[])的区别
  • char*和char**运用的问题
  • 哪位大哥帮帮忙啊?? char类型和u_char类型 怎么进行比较?
  • 求高人指点C基础char[]和char*比较,不胜感激!
  • 奇怪,为什么char ch='u10100'编译错误,而char ch='ujava'编译成功呢?
  • C语言中char*和char[]用法区别分析
  • 问个低级的问题:在windows里 有 char * strfilename1 =new char[255];strcpy(strfilename1,"C:\finger2.bmp")的用法,在纯java里怎么写
  • 请问: setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLinger,sizeof(BOOL)); 中的,(const char*)&bDontLinger是什么意思啊
  • 使用C语言递归与非递归实现字符串反转函数char *reverse(char *str)的方法
  • 内核中static inline int strncmp(const char * cs,const char 的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3