关于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++指针应用及注意问题

  • 2011-08-18 19:45
  • 19KB
  • 下载

C/C++高阶语法:函数指针及其应用,动态链接库,正向调用

1、在介绍正向调用之前,先讲一讲动态链接库的知识:       1)、 动态链接库 DLL,即Dynamic Link Library,在理解动态链接库的时候,我们可以把它理解为一个包含变量,函数或...

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

  • 2011-08-10 22:56
  • 10.97MB
  • 下载

初学者必读C/C++指针应用

初学者必读C/C++指针应用 C++中,成员指针是最为复杂的语法结构。但在事件驱动和多线程应用中被广泛用于调用回叫函数。在多线程应用中,每个线程都通过指向成员函数的指针来调用该函数。在这样的...

C和指针的应用

  • 2014-05-16 22:05
  • 29.13MB
  • 下载

C和指针(原理与应用)

  • 2011-04-28 10:31
  • 11.06MB
  • 下载

从本质理解C指针的应用(1)

C指针说到底就是一种操作符,所以想要正确的理解C指针,那么最重要的就是莫过于理解操作符了为了理解有些操作符存在的限制,你必须理解左值和右值(左值和右值)之间的区别。这两个术语是多年前由编译器设计者所创...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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