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