【问题标题】:hardcode pointer value硬编码指针值
【发布时间】:2023-03-04 09:21:01
【问题描述】:
char buf[50];
char *ptr = buf;

如果我想在第 4、第 8 和第 16 个指针位置硬编码(''),如何将空格('')硬编码到特定的指针位置?

【问题讨论】:

  • “硬编码”是什么意思?
  • 完成此操作后,请务必对所有处理 bufptr 的字符串函数进行三次检查。根据被覆盖的内容,数据可能不再是字符串(如果它曾经开始)

标签: c pointers spaces


【解决方案1】:
*(ptr+3) = ' ';
*(ptr+7) = ' ';
*(ptr+15) = ' ';

【讨论】:

  • 这更像是“代码”而不是“硬代码”,因为可以重写,但可能 OP 与 C++ 语言有问题,那么我认为还可以
  • 应该是*(ptr + 3)*(ptr + 7)*(ptr + 15)
  • ptr[4] = ' ';,我认为这看起来更传统。
  • @John Zwinck - 或者更确切地说是ptr[3],这就是我认为你的意思。
  • 我只是基于 Till 未经编辑的答案。当他说第四个时,Till 和我可能假设 OP 的意思是 [4] 位置,因为一些 C 程序员将数组的开头称为“第零”元素(C 数组从零开始)。无论如何,我不在乎你放哪个数字,我只是在提倡括号。
【解决方案2】:

如果通过硬编码你的意思是你想要值 before 开始任何执行(与 Till 的回答相反),你可以这样做:

char buf[50] = "... ... ....... ";

然后是您的其余代码。 (请注意,不是空格的位置具有不相关的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多