当前位置:  技术问答>linux和unix

大家一起来讨论下全局变量的使用吧

    来源: 互联网  发布时间:2017-02-07

    本文导语:  我在linux c代码编程遇到下面这样的问题: int aa=1; char b[4]; main(){ char a[4]="1234"; memset(b,'',sizeof(b)); strcpy(b,a); printf("aa is %dn",aa); } 此时问题来了 我没有对aa做操作,这是打印的aa变成了0;如果我把b[4]编程b[8]或者下...

我在linux c代码编程遇到下面这样的问题:
int aa=1;
char b[4];
main(){
char a[4]="1234";
memset(b,'',sizeof(b));
strcpy(b,a);
printf("aa is %dn",aa);
}

此时问题来了 我没有对aa做操作,这是打印的aa变成了0;如果我把b[4]编程b[8]或者下表比4大,此时aa的值就不会改变,我很纠结,麻烦路过的顶下;
                                       

|
如果我把b[4]编程b[8]或者下表比4大,此时aa的值就不会改变,我很纠结,麻烦路过的顶下;

strcpy(b,a);这个有问题~a字符串是5个字符 b数组只是一个4个字符的数组,拷贝会出问题

|
char a[4]="1234"; 这个赋值也有问题~没有吧''考虑

|
内存越界了,覆盖了相邻的地址空间

|
不晓得linux下面会是怎样
在windows下面已初始化和未初始化的全局变量 所存放的地址空间是不连续滴:
     已初始化滴变量会存放在一段连续的静态存储区;
     而未初始化滴变量会放在另外一段开辟的连续静态存储区。
int aa=1; 
char b[4]; 
aa,b两个变量存放的地址空间是不连续滴,所以也不可能出现因为内存越界,而覆盖了相邻的地址空间

而且楼主代码中char a[4]="1234";这应该是写错了,c字符串是已‘’结尾滴,这样编译时会报错
在windows下面这段代码的运行结果aa还是1,或许在linux下面会有所不同

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












  • 相关文章推荐
  • Canvas和JInternalFrame联合使用的问题(大家一起来参与,近来看看吧)
  • 如何很好的使jsp javabean servlet配合起来使用呢?
  • java/j2ee iis7站长之家
  • 我使用corba将Java和C程序连接起来,由Java向C传递一个字符串,但是我发现我原来的0a被换成了0d 0a,那位给各解释。
  • 怎么样使用fork函数?哪位大侠能把下面两个程序用fork连接起来成为一个通信程序?
  • top 显示的%MEM 是什么意思呢?我把这些值加起来超过了100%,这怎么回事呢?(我运行oracle,它的多个进程加起来就超过了。。。)
  • vmware怎么优化?在vmware上装linux运行起来是不是特别慢?我在256内存的p4上安装,运行起来很慢!
  • 求救!Redhat Linux 7.1加强了安全性方案,系统起来后不自动启动ftp,telnet,http等服务了,请问我该如何设置才让他们都起来呀?
  • Gtk+与Qt谁学起来更容易?
  • apache启动不起来了
  • 安装VisualAge3.5后运行不起来
  • Apache 1.3.20和Tomcat 4能否结合起来?
  • 急!到底要多少内存WS+DB2才能跑起来?
  • 欢迎大家一起来讨论:集群在J2EE中的实现。
  • EJB调试起来好麻烦,请问各位有什么高招?
  • 把Resin+IIS结合起来使用以后,
  • 高分求教!!!!如何将数据库的查询结果组合起来?
  • 怎么把JTextField和JButton联系起来?????????
  • 如何将几个文件编译起来
  • solaris下如何把weblogic和apache的服务做成随开机自动起来,急急急!
  • 装好linux后,感觉里面的字体看起来好不爽..请问怎么改为像windows一样
  • Red Had Enterprise linux AS 4 上的 vsftpd 开不起来?
  • Linux系统刚启动起来的时候为什么会阻塞一下?
  • fedora core 6上的samba配不起来,求助
  • linux下QQ用不起来?


  • 站内导航:


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

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

    浙ICP备11055608号-3