运行程序的错误在哪里?我知道这两个函数中循环FOR的行有问题。
我用调试器运行,我不知道为什么会出现错误。
崩溃是:program2.exe 中 0x00E214E5 处的未处理异常:0xC0000005:访问冲突写入位置 0x00E25865。
然后程序停止。
我的代码:
#include <stdio.h>
char *what1 (char s[], char t[], int n);
int what2 (char str[], char c);
int main ()
{
printf("%s\n", what1("hello", "world", 2));
printf("%d\n", what2 ("fkbf", 'o'));
return 0;
}
char *what1 (char s[], char t[], int n)
{
char *p=s;
while (*s++);
for (--s; n-- && (*s=*t); s++, t++);
*s='\0';
return p;
}
int what2 (char str[], char c)
{
char *ptr;
for (ptr=str; *ptr;)
if ((*str=*ptr++)!=c)
str++;
*str ='\0';
return ptr-str;
}