清霜一梦

check_return

0
阅读(1256)

//date : 2013 4 2 
//designer :pengxiaoen
//function:check the word return in function

#include "stdio.h"

int add ()
{
 int a,b,c;
 a = 2; b=3;
 c = a+b;
 return c;
}



int main ()
{
int m = 0;
m = add (); 
printf ("result is %d\n",m);

system ("pause");
}

 

这个代码的确简单,最终输出是5。当然我的最终目的当然不是这个,而是把add 函数换成下面的这个

int add ()
{
int a[5],i;
for (i = 0;i<5;i++) a[i] = 1;
return a[3];
}

那么它的输出结果是1吗?答案当然不是,那是什么呢?

运行的结果.EXE文件被杀毒软件杀掉了。汗!!!(我用的是dev)   

 

继续修改

int * add ()
{
int s[5],i;
for (i=0;i<5;i++) s[i] = 1;
return s;
}


int main ()
{
int *m ;
m = add (); 
printf ("result is %d\n",m);

system ("pause");
}

 

 

得到的是一个地址

(后续)