首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

一段不解的C程序解决方法

2012-05-23 
一段不解的C程序#include stdio.h#defineuchar char#include string.hint copy_data(char *user_space

一段不解的C程序
#include "stdio.h"
#define uchar char
#include "string.h"

int copy_data(char *user_space,char cout);
int main()
{
uchar tr[1024];
uchar *user="";

int m=copy_data(user,2);
   
printf("%d\n",user[0]);
printf("%d\n",user[1]);

   

return 0;
}

int copy_data(char *user_space,char cout)
{
  if(cout<1)
return 0;
  uchar tr[2];
uchar Buf[]={120,45,45,56};
char i=0;
for(i=0;i<cout;i++)
{
tr[i]=Buf[i];
}
user_space=tr;

if(i==cout)
return 1;
else return 0;


}

为什么无法输出:120
  45

[解决办法]
是新生,可以原因。老生,不能原谅,应该要自饿一天。
值传递的问题,不能返回,要返回要用指针的指针。
[解决办法]
返回的是局部变量上的数据,在函数调用结束后,局部变量的数据是无效的。
[解决办法]
可以结贴了,基本点都说到了。
[解决办法]

C/C++ code
#include "stdio.h"#define uchar char#include "string.h"int copy_data(char *user_space,char cout);int main(){ uchar tr[1024]; //uchar *user=""; uchar user[5];int m= copy_data(user,2);      printf("%d\n",user[0]); printf("%d\n",user[1]);      return 0;}int copy_data(char *user_space,char cout){   if(cout<1) return 0;   uchar tr[2]; uchar Buf[]={120,45,45,56}; char i=0; for(i=0;i<cout;i++) { //tr[i]=Buf[i];     *( user_space + i ) = Buf[i]; }//user_space=tr; if(i==cout) return 1; else return 0;} 

热点排行