如何设置一个数字的整数指针,并使其表现为非指针整数?

时间:2012-11-04 23:31:35

标签: c pointers

这是当前无效的代码。我需要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。

2 个答案:

答案 0 :(得分:7)

像这样:

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

// ...

++(*j);

这当然毫无意义。

答案 1 :(得分:5)

哦不

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

方法1:

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

方法2:

    int *j = malloc(sizeof(int));
    *j = 0;
....
 ///don't forget to free(j);