-5
运行程序错误在哪里? 我知道在这两个函数的FOR循环中有一个问题。运行程序错误 - C
我用调试器运行,我不知道为什么会出现错误。
该崩溃是: 在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;
}
您是否收到错误讯息?怎么了?你期望发生什么? – EClaesson 2013-04-09 15:42:11
什么样的错误?它是一个崩溃?或意外的回报?或垃圾打印? ... – MOHAMED 2013-04-09 15:45:49
我不知道修改字符串文字的选择有哪些问题,但这显然是一个重复的问题。 – 2013-04-09 15:46:23