问题标签 [char-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
236 浏览

c++ - 递归地传递一个字符串而不进行重新创建

我在这里回答了一个问题:https ://stackoverflow.com/a/28862668/2642059我需要使用循环来逐步完成string. 我想const string&在每个函数上使用 a 作为我的参数,但除非我想在每次递归时重建字符串,否则我发现我需要传递 astartfinish位置以及它string本身。因此,通过根本变得毫无意义string

最后,我选择只将 astartfinish指针传递给char[].


例如,假设我得到一个包含嵌套括号的字符串(但没有并排插入的括号。)所以像这样:

(abc(def(ghi((j)klm)nop)qrs)tuv)wxyz

但不是这样:

(abc(def)(ghi)(j)(klm)(nop)(qrs)tuv)wxyz

我想编写一个递归程序来提取最深嵌套括号中的字符串。就像是:

但是,我不高兴stringfoo. 另一种方法是像链接示例中那样传递startfinish指针(或传递string::const_iterators。)

是否有包装器或其他东西可以让我使用string功能,但不能重建 a string

0 投票
2 回答
363 浏览

c++ - 更喜欢迭代器而不是指针?

这个问题是一个问题的一个问题,在这里有评论,但作为问题的一部分被删除。

对于那些看不到已删除帖子的人,评论是关于我在这个答案const char*中使用s 而不是s :“迭代器可能从一开始就是一条更好的路径,因为看起来这正是你的指针看起来的样子被视为。”string::const_iterator

所以我的问题是,迭代器是否持有string::const_iterators 比 s 持有任何内在价值,const char*以便将我的答案切换为string::const_iterators有意义?

0 投票
1 回答
61 浏览

c - 超过为 char 分配的大小时不会出现分段错误 *

我使用 malloc 为 x 分配 n(y 的字符串长度)字节。但是,在将 y 复制到 x 之后,我在 x 中添加了 3 个字符,包括 '\0' 并且我没有收到任何错误。

由于我分配的空间仅可容纳 10 个字符,因此在尝试将值分配给未分配的内存时不应该出现错误吗?这是未定义的行为吗?

0 投票
1 回答
1107 浏览

c++ - 试图读取或写入受保护的内存:C++ 修改的内存值

我为修剪字符串“c 和 c++ 中的 char 数组或 char 指针”使用此函数:

但返回此错误(代码中的原因*(end+1) = '\0'):

x.exe 中出现“System.AccessViolationException”类型的未处理异常

附加信息:试图读取或写入受保护的内存。这通常表明其他内存已损坏。

请帮我。

0 投票
1 回答
203 浏览

c - 为什么它给出错误“分段错误”?

我想在不同的内存位置输入两个字符串,但在第一次输入后显示错误“分段错误(核心转储”)。我不明白这段代码有什么问题。

但是当我只接受一个输入时,它工作正常。

为什么?

0 投票
1 回答
739 浏览

c++ - 在 C++ 中从 char 数组解析为 char 指针

我的代码有问题。我想将 char 数组解析为 char 指针;我该怎么做?

示例代码:

如何将 char tmp 解析为 char *temp?

问候,

0 投票
1 回答
205 浏览

c - 当 ASLR 打开时,返回的指针地址被修改

我在启用了 ASLR 的开发盒上运行了这段 C 代码。它正在向函数返回一个 char 指针 (char *),但返回的指针地址中的几个字节不知何故发生了变化,下面的 printf 输出:

char 指针0x00007f0b8e7fc120被返回到另一个函数,该函数被修改,因为0xffffffff8e7fc120它与原始指针地址相差一个字(4 字节)0xffffffff而不是0x00007f0b,最后四个字节(8e7fc120)相同。知道会发生什么吗?以及我该如何解决这个问题。该代码在 Intel Xeon 上的 linux 64 位架构上运行。这段代码来自一个现有的专有库,所以我不能分享确切的代码,但代码逻辑看起来像这样:

retadd 和 m1.addr 在 ASLR 开启时是不同的。

0 投票
1 回答
133 浏览

c - 使用 char ** 指针的字符串操作代码给出了意外的结果

我试图实现一个字符串解析代码,我需要给定字符串的子字符串,所以我执行以下操作:

头文件是:test.h

源文件:main.c test.c

测试.c:

  1. 案例1:test.c

    #include“测试.h”

    整数增量(字符**字符串){

    }

  2. 案例2:test.c

    #include“测试.h”

    整数增量(字符**字符串){

    }

主.c:

生成文件是:

但是在 test.c 的第一种情况下,我试图遍历子字符串,但它给出了一些垃圾结果。第二种情况很好。

test.c 案例 1 中出了什么问题。

谢谢!!!!!!!!!!!!

0 投票
3 回答
176 浏览

c++ - C、指针和void函数

已经寻找了类似的答案,但我没有尝试任何工作。有一个问题,我想word通过调用 void 函数来更改值,init()但是当我打印单词时它不起作用。

已经为此花费了很多时间,因此我们将不胜感激。

0 投票
1 回答
301 浏览

c - 在C中将结构转换为char *指针

我有一个结构:

我希望将此结构转换为 char* 指针并在 Uart 上打印值。Uart 将 char* 指针作为输入。

我的主要功能如下:

注意: printf() 不起作用,我使用的是 UART。

将结构指针转换为指针后,我想在 UART 上打印缓冲区值char *。有可能这样做吗?