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

标签 c

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

我尝试了很多不同的方法,但没有一个奏效,这是我最近的尝试,我一直在努力 “初始化从整数生成指针而不进行强制转换”

int move_chars (char *str, int start, int end, int dist){
    int strsize = end - start + 1;
    char *p =  *str;

最佳答案

因为pchar *类型,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/

相关文章:

c - 诡异的 。 C 中的表示法?这叫什么,有人可以解释一下吗?

c++ - 检测屏幕上的坐标是否可交互。

c++ - 如何在 Eclipse CDT 中获取 C/C++ 程序的控制台输入

c - 为什么这个程序没有给出任何输出(找出下一个回文和素数没有)?

C - 不打印出整个字符串

c - 通过 C 中的管道读取/写入

在 Pebble 表盘应用程序上创建多个文本层

c - 为什么这个程序只在第一次输入时给我一个错误计算?

c - 数组输入太大

我可以访问内存中的任何内容吗?