我有一个接收字符串指针的函数。 现在我想复制这个指针,这样我就可以用一个指针在字符串上运行,并有另一个指针保存字符串的开头。我希望我的问题很清楚,我不想创建一个指向指针的指针(它指向第一个指针指向的位置并随之改变),我想要一个指向第一个指针指向的地址的指针.
我尝试了很多不同的方法,但没有一个奏效,这是我最近的尝试,我一直在努力 “初始化从整数生成指针而不进行强制转换”
int move_chars (char *str, int start, int end, int dist){
int strsize = end - start + 1;
char *p = *str;
最佳答案
因为p
是char *
类型,str
也是char *
类型,你只需要做:
char *p = str;
使p
指向与str
相同的内存位置。
您的代码:
char *p = *str;
尝试将 str
指向的内存位置的第一个 char
的值复制到 p
中,并且由于 p
需要另一个内存位置而不是 char
,你会得到一个错误。
你的错误是“初始化从没有转换的整数中生成指针”。这告诉你发生了什么:编译器认为你手动将 p
指向一个特定的内存位置,使用 char
*str
的值作为整数返回。这在技术上是可行的,但您需要手动将整数转换为指针,这样才能清楚地表明您正在按照您的意图进行操作,而不是像您的情况那样的错误。
关于c - 使用另一个指针 C 指向地址的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14401999/