关于C指针的应用问题记录

原创 2016年06月01日 11:08:21
最近在linux中使用C编程遇到将结构体内容赋值给指针变量后,将结构体清空发现指针变量的内容也被清空了:
<span style="font-size:14px;">#include <stdio.h>
#include <stdlib.h>

char* name;
struct userInfo{
char name[10];
char age;
};
void main(){
struct userInfo user={"linux"};
name=user.name; 
memset((char*)&user,0,sizeof(user));
printf("name:%s\n",name);
}</span>

打印结果为name:

这是为什么呢??

后面调试时通过打印char* name在内存中的地址发现,问题其实简单。

其实所有指针在定义后,地址都是0地址,当指针进行赋值等初始化后指针地址等于赋值内容的地址,及前面 name=&user=0x*******。所以在使用memset进行清空时,清空地址&user后面的内容即清空了指针name中的内容。

解决方法可以用字符数组char name[ ] 替换char *name来解决。如果大家用更好的方案,欢迎拍出!





版权声明:本文为博主原创文章,未经博主允许不得转载。

C/C++中的指针的应用及注意问题

指针是c/c++学习一个比较让人头痛的问题,在程序设计过程中,指针也往往是产生隐含bug的原因。下面就来谈谈指针的应用以及需要注意的一些问题,里面也许就有你平时没有注意到的问题,希望能帮助各位读者理解...

C/C++中的指针的应用及注意问题

北大青鸟教学文章:c++培训:C/C++中的指针的应用及注意问题        指针是c/c++学习一个比较让人头痛的问题,在程序设计过程中,指针也往往是产生隐含bug的原因。下面就来谈谈指针的应用以...
  • ljxkey
  • ljxkey
  • 2013年03月28日 00:58
  • 329

关于c中的问题《指针和存储》

  • 2011年08月04日 17:09
  • 70KB
  • 下载

C_指针编程中的几个常见问题

  • 2012年10月02日 10:01
  • 45KB
  • 下载

C程序(scanf函数应用、字符串中取小数、两文件COPY、指针操作、stdout、stdin、stderr、sscanf、sprintf函数)

1.scanf函数相关应用 #include int main(  ) {        int i=0;        float f;        char c1,c2;    ...

C++指针应用及注意问题

  • 2011年08月18日 19:45
  • 19KB
  • 下载

C,C++中指针问题详解

  • 2011年08月10日 22:56
  • 10.97MB
  • 下载

C51指针定义和应用小结

一. 指针变量的定义 指针变量定义与一般变量的定义类似,其形式如下: 数据类型 [存储器类型1] * [存储器类型2] 标识符; [存储器类型1] 表示被定义为基于存储器的指针,无此选项时,...

C_语言中函数指针的分析与应用

  • 2012年07月04日 16:37
  • 43KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于C指针的应用问题记录
举报原因:
原因补充:

(最多只允许输入30个字)