leidinghao123 发表于 2021-6-11 00:34:56

求助:VC6.0编译没问题,单点调试出错,自身无法解决。

#include<stdio.h>
#include<math.h>
//有一个字符串,包含N个字符,写一函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串

void copystring1(char *a,char *b,int m);

void main()
{
        char a;
        char b="\0";
        int m;
        printf("请输入字符串:");
        gets(a);
        printf("请输入从哪儿开始");
        scanf("%d",&m);
        copystring1(a,b,m);//单点调试到这儿就报错,求问是什么原因 ,提示是0xC0000005: Access Violation
        printf("%s",*b);
}

void copystring1(char *a,char *b,int m)
{
        int *p;
       
        for(*p=*(a+m-1);*p!='\0';p++,b++)
        {
                *b=*p;

        }
}


以上是源码,调试到copystring1(a,b,m)就报错, 也搞不清楚原因, 还没进到函数。。

leidinghao123 发表于 2021-6-11 00:37:04

求大佬把源码考过去帮我解解惑, 暂时不谈能不能正常的完成题目, 为什么走到函数copystring1就会报错呢。。

人造人 发表于 2021-6-11 00:45:53

#include <stdio.h>
#include <math.h>

// 有一个字符串,包含N个字符,写一函数,将此字符串从第m个字符开始的全部字符复制成另一个字符串

void copystring1(char *a,char *b,int m);

int main(void)
{
    char a;
    char b="";
    int m;
    printf("请输入字符串:");
    gets(a);
    printf("请输入从哪儿开始");
    scanf("%d",&m);
    copystring1(a,b,m);   // 单点调试到这儿就报错,求问是什么原因 ,提示是0xC0000005: Access Violation
    printf("%s",b);
    return 0;
}

void copystring1(char *a,char *b,int m)
{
    char *p;
    for(p=(a+m-1);*p!='\0';p++,b++)
    {
      *b=*p;

    }
    *b = '\0';
}

leidinghao123 发表于 2021-6-11 08:54:59

顶帖, 看看有大佬回答我吗?

leidinghao123 发表于 2021-6-11 09:02:46

人造人 发表于 2021-6-11 00:45


具体是哪里出问题了哦 大佬?
页: [1]
查看完整版本: 求助:VC6.0编译没问题,单点调试出错,自身无法解决。