读书人

请求各位紧急帮忙

发布时间: 2012-03-20 14:01:11 作者: rapoo

请求各位大虾紧急帮忙
小弟刚接触C不久,烦各位帮忙看看下列代码哪里有问题,怎么返回值(D)不正确.
谢谢各位了.
#include <iostream>
#include <string.h>
#include <stdio.h>
//unsigned char* myanwser();
static const unsigned char* myanwser()
{
int i,j;
unsigned char A[6]= "abcd\n ";
unsigned char* B;
//for(int i=0;i <5;i++)
//{
// printf( "A: %c\n ",A[i]);
//B++;
//}
//unsigned char* B;
//B=A;
/*for(j=0;j <5;j++)
{
printf( "B: %c\n ",*B);
B++;
}*/
B=A;
return B;
}

int main()
{
int j;
unsigned char* D;
//D=(unsigned char*)malloc(5);
//memcpy(D,(unsigned char*)myanwser(),5);
//D=(unsigned char*)myanwser();
D=(unsigned char*)myanwser();
for(j=0;j <5;j++)
{
printf( "C: %c\n ",*D);
D++;
}
return 0;

}



[解决办法]
return语句返回指向“栈内存”的指针,该内存在函数结束时自动消亡
[解决办法]
return语句返回指向“栈内存”的指针,该内存在函数结束时自动消亡
-----------------------------

同意,个人觉得可以将unsigned char A[6]= "abcd\n " 作为形参。

读书人网 >C++

热点推荐