我在函数中有一个指向数组的指针数组。我需要在另一个函数中访问该数组。指向本地指针数组的全局指针
指针数组
char *ptr[size + 1];
我由全局指针
char *p;
我指出PTR(在相同的功能,PTR)
p = *ptr;
然后我试图访问ptr从其他功能
void otherFunction(void){
for(int n = 0; n < 6; n++)
{
char* str = &p[n];
printf("%i %s\n", n, str);
}
}
时
ptr[0] = "abcd"
ptr[1] = "bcde"
ptr[2] = "cdef"
ptr[3] = "defg"
ptr[4] = "efgh"
ptr[5] = "fghi"
的otherfunction();
输出为:
0 abcd
1 bcd
2 cd
3 d
4
5
我所要的输出是
0 abcd
1 bcde
2 cdef
3 defg
4 efgh
5 fghi
我的问题是:(0)怎么回事错在这里。 (1)我如何解决它(2)还是有更好的方法来做到这一点。要求是otherfunction()
不能采取任何参数和ptr
需要保持本地的功能。 (Im某些其他代码不会导致问题,并且ptr
没有任何错误)
'P = *的ptr;''解除引用和ptr'相同说'P = PTR [0];' – Goodies
你可能意思是'p = ptr;' – Goodies
你需要显示更多的代码。指针数组是静态的还是自动的?函数内部或函数返回后,显示的函数是否被调用?请创建一个MCVE([MCVE]) - 它不需要太多的代码,但这将提供关键的上下文,以便提供智能且有用的答案。 –