我有一个接收指向字符串的指针的函数.现在我想复制这个指针,所以我可以用一个指针运行字符串,并有另一个指针保存字符串的开头.我希望我的问题很明确,我不想创建一个指向指针的指针(指向第一个指针指向的位置并随之改变),我想要一个指向第一个指针所指向的地址的指针.
我尝试了很多不同的方法,但没有一个工作,这是我最近的尝试,我一直得到"初始化使指针从整数没有演员"
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)
既然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返回值作为整数.这在技术上是可行的,但是您需要手动将整数转换为指针,这样就可以清楚地表明您正在按照预期执行操作,并且这不是您的情况下的错误.
| 归档时间: |
|
| 查看次数: |
125 次 |
| 最近记录: |