3

这是当前不起作用的代码。我需要 j 作为指针。

Substring(const char a[],int x,int y,char b[])
{
    int *j=0;
    for(x;x<=y&&a[x]!='\0';x++)
    { b[*j]=a[x];
         *j++;}
    b[*j] ='\0';
    return (b);

}

以下代码运行良好,唯一的问题是 j 不是指针。

Substring(const char a[],int x,int y,char b[])
    {
        int j=0;
        for(;x<=y&&a[x]!='\0';x++)
        { b[j]=a[x];
             j++;}
        b[j] ='\0';
        return (b);

    }

我希望第一个代码表现得像第二个,关于如何做到这一点的任何想法?代码编译并执行,但它停止工作。调试没有帮助。我不能使用超过 1 个变量 - j。

4

2 回答 2

7

像这样:

int real_j = 0;
int * j = &real_j;

// ...

++(*j);

这当然是完全没有意义的。

于 2012-11-04T23:33:24.653 回答
7

不好了

int *j = 0;j指向 0 (或NULL)。

方法一:

int jx = 0;
int *j = &jx;

方法二:

    int *j = malloc(sizeof(int));
    *j = 0;
....
 ///don't forget to free(j);
于 2012-11-04T23:36:31.047 回答