[求助指针的问题!
题目:对字符串加密,然后输出加密后的字符串!#include<stdio.h>
#include<stdlib.h>
char *encrypt(char *string);
char *decrypt(char *string);
int main()
{
char item[80];
char *point;
char *pEncrypted;
char *pDecrype;
printf("请输入需要加密的字符串:\n");
gets(item);
point=item;
pEncrypted=encrypt(point);
printf("经过加密的字符串是:\n%s\n",pEncrypted);
pDecrype=decrypt(pEncrypted);
free(pEncrypted);
free(pDecrype);
}
char *encrypt(char *string)
{
char *q,*t;
q=(char *)malloc(sizeof(char)*80);
if(!q)
{
printf("没有可用的内存空间\n");
return 0;
}
t=q;
while(*string!='\0')
{
*q=*string-2;
string++;
q++;
}
*q='\0';
return t;
}
char *decrypt(char *string)
{
char *q,*t;
q=(char *)malloc(sizeof(char)*80);
if(!q)
{
printf("没有可分配的内存空间\n");
return 0;
}
t=q;
while(*string!='\0')
{
*q=*string+2;
string++;
q++;
}
*q='\0';
return t;
}
问题:把t=q;*q='\0'两个都删掉,然后,把return t改成return q,能显示加密和解密的字符
但弹出个对话框要中止或重试或关闭,请问为什么会这样的?