//////返回指针的函数
char* CQteDlg::kk(int n)
{
char temp[6], *p;
char date[4][12]={"2004/2/9","dfd","dfdfd","dfdfdf"};
int k=strlen(date[n]);
if (k==10)
temp[5]='\0';
if (k==9)
temp[4]='\0';
if (k==8)
temp[3]='\0';
for ( int i = 0; i < 5; i++)
{
if (*(date[n]+i+5))
temp[i] = *(date[n] + i + 5 );
else
break;
}
p=temp;
return p;////p指向了"2/9";
}/////////调用函数
char *pchar=kk(0);
AfxMessageBox(pchar);
为什么输出乱码呢?
char* CQteDlg::kk(int n)
{
char temp[6], *p;
char date[4][12]={"2004/2/9","dfd","dfdfd","dfdfdf"};
int k=strlen(date[n]);
if (k==10)
temp[5]='\0';
if (k==9)
temp[4]='\0';
if (k==8)
temp[3]='\0';
for ( int i = 0; i < 5; i++)
{
if (*(date[n]+i+5))
temp[i] = *(date[n] + i + 5 );
else
break;
}
p=temp;
return p;////p指向了"2/9";
}/////////调用函数
char *pchar=kk(0);
AfxMessageBox(pchar);
为什么输出乱码呢?
AfxMessageBox(pchar);
这样确可以呢
char *pchar=new char[16];
strcpy(pchar,kk(0));
AfxMessageBox(pchar);
char * pchar = new char[xx];kk(x, pchar);AfxMessageBox(pchar);
for ( int i = 0; i < 5; i++)
{
if (*(date[n]+i+5))
temp[i] = *(date[n] + i + 5 );
else
break;
}
???!!!!!!!!!!!!
想没有乱码就怪了
好好想想吧