使用另一个指针C指向地址的指针

use*_*310 1 c

我有一个接收指向字符串的指针的函数.现在我想复制这个指针,所以我可以用一个指针运行字符串,并有另一个指针保存字符串的开头.我希望我的问题很明确,我不想创建一个指向指针的指针(指向第一个指针指向的位置并随之改变),我想要一个指向第一个指针所指向的地址的指针.

我尝试了很多不同的方法,但没有一个工作,这是我最近的尝试,我一直得到"初始化使指针从整数没有演员"

int move_chars (char *str, int start, int end, int dist){
    int strsize = end - start + 1;
    char *p =  *str;
Run Code Online (Sandbox Code Playgroud)

Mar*_*eón 7

既然p是类型char *,str也是类型char *,你只需要做:

char *p = str;
Run Code Online (Sandbox Code Playgroud)

p指向相同的内存位置str.

你的代码:

char *p = *str;
Run Code Online (Sandbox Code Playgroud)

尝试复制到指向内存位置p的第一个值,并且由于期望另一个内存位置而不是a ,您会收到错误.charstrpchar

你的错误说"初始化使得整数指针没有强制转换".这告诉您发生了什么:编译器认为您手动指向p特定的内存位置,使用char *str返回值作为整数.这在技术上是可行的,但是您需要手动将整数转换为指针,这样就可以清楚地表明您正在按照预期执行操作,并且这不是您的情况下的错误.


sim*_*onc 5

使用

char *p =  str;
Run Code Online (Sandbox Code Playgroud)

声明一个指向char的指针,并用另一个char指针的值初始化它.