易截截图软件、单文件、免安装、纯绿色、仅160KB

问两道 C 面试题,高手帮看一下

1. 如下定义会有什么错误发生

  //file1.c
  int a[10];

  //file2.c
  extern int *a;


2. 大容量全局变量有什么危害,如
   
  //file.c
  int a[1000000];

  注:此变量并非临时使用,而是从程序开始一直使用到程序结束
up


第一个问题可看下http://blog.chinaunix.net/u1/35100/showart_445864.html
往下拉到4.7,有详细解释的

恩,第一个比较明显,那么第二个呢,实在看不出有什么实质性的危害,总不至于是栈溢出吧

引用
恩,第一个比较明显,那么第二个呢,实在看不出有什么实质性的危害,总不至于是栈溢出吧

笔误,是堆溢出

int a[1000000]; ?你主机有多少内存够用的啊?就这么一个变量,直接4M的内存没了。

第一个重复定义。
  //file1.c 
  int a[10]; 

  //file2.c 
  extern a;

大容量全局变量,占用的内存不得释放,会使程序缓慢吧,猜测

引用
int a[1000000]; ?你主机有多少内存够用的啊?就这么一个变量,直接4M的内存没了。

说错了,是40兆。

我觉得可能有时没有那么多连续的内存单元。。。。

1. 如下定义会有什么错误发生 

  //file1.c 
  int a[10]; 

  //file2.c 
  extern int *a; //这么写语法上没错误,但容易没看file1.c的人产生误解,以为a


相关问答:

两个C文件的问题

以前在VC里面建一个工程,都只用一个 .c 文件,昨天在一个工程里用了两个 .c文件了,遇到问题了,请大家指点。比如:
File1.c Fil ......

菜鸟求解:c图形问题

#include <stdio.h>
#include <graphics.h>
void main()
{
  int x0,y0,x1,y1,driver,mode,i;
  driver=VGA;
  mode=VGAHI;
  initgraph(&driver,&mode,&qu ......

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

C/S程序在线自动更新问题,谢谢求教!

目前遇到的问题是:
存放在远程服务器端c/s程序一有更新,如何做到客户端立即响应弹出有最新升级的提示窗口。
本来有点思路:采用WCF+windowns服务+定时器的方式也能实现,但是每台客户端机子每隔都去访问一下远程 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号