关于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语言指针的一切

Everything you need to know about pointers in C 你需要知道关于C语言指针的一切 指针的定义 指针是内存地址。 (嗯,简短的段落。...
  • sergeycao
  • sergeycao
  • 2016年12月15日 13:01
  • 3347

C语言中结构体与指针的若干问题(在数据结构中的应用)

C语言中结构体与指针的若干问题(在数据结构中的应用)
  • u012965373
  • u012965373
  • 2015年09月24日 18:59
  • 2418

c语言之多级指针的应用

/* 功能: 1、把指针数组p1的字符串取出来, 2、把二维数组buf2的字符取出来, 3、上面的字符串放在 p3,p3 是在堆区指针数组(每个元素同时...
  • lixiaogang_theanswer
  • lixiaogang_theanswer
  • 2017年04月14日 22:42
  • 284

c语言面试题 指针30个常错题型

来源:http://blog.chinaunix.net/u1/58640/showart.php?id=1354073 记下来以备不时之需。 1. char * const p; char cons...
  • hnust_xiehonghao
  • hnust_xiehonghao
  • 2013年12月28日 20:54
  • 20434

C++中的关于指针的问题

1、指针的初始化 指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变...
  • qq_32175379
  • qq_32175379
  • 2016年12月27日 16:06
  • 390

C语言编程指针的应用场合

参加工作两年了,第一次在CSDN写博客。由于一直从事的是手机嵌入式开发,因此和C语言,和指针也就打了两年交道。网络上有不少牛人写了关于C语言指针的各种使用方法,主要是大谈语法规则类的,在此,我想主要写...
  • VictoryXu
  • VictoryXu
  • 2010年08月07日 19:53
  • 802

C语言强化指针高级应用学习心得

一.关于指针传递的思考 例1-1: #include char* test() {       char str[] = "this is a test";       return str; }  ...
  • changyourmind
  • changyourmind
  • 2016年07月27日 11:37
  • 1283

单片机C语言之指针变量

本来通过一个实例来解释C语言指针。
  • a514371309
  • a514371309
  • 2017年06月22日 08:26
  • 610

[指针八]有关指针的面试题

有关指针的经典面试题           C语言为何如此长寿并实用?C++为什么有那么多精彩?指针可以说是C/C++中的灵魂所在,虽然早期中pascal也有指针,但是和C/C++比起来不是一...
  • lngag110
  • lngag110
  • 2014年07月21日 21:33
  • 1647

【转载】C语言中指针使用的注意事项

相信大家对指针的用法已经很熟了,这里也不多说些定义性的东西了,只说一下指针使用中的注意事项吧。 一.在定义指针的时候注意连续声明多个指针时容易犯的错误,例如int * a,b;这种声明是声明了...
  • u011349387
  • u011349387
  • 2015年05月05日 18:03
  • 1102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于C指针的应用问题记录
举报原因:
原因补充:

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