问题标签 [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 回答
218 浏览

c++ - 非数组类型的指针算法

让我们考虑以下代码:

假设 sizeof(double) 为 8,这段代码会触发未定义的行为吗?

0 投票
1 回答
173 浏览

c - 冒泡排序到 char 指针

我正在尝试制作一个将 char 指针插入到 'char** arr' 的程序,然后使用 strcmp 对 char 指针进行排序,但由于某种原因它不起作用,我添加的代码是整个排序的一部分代码。

0 投票
1 回答
15818 浏览

c - (char*) 0 是什么意思?

这是一个参考这个问题的问题: What does (char *)0 mean in c?

那里的答案与解释究竟是什么略有不同,但最终的答案提到它是一个指向地址 0 处的字符的指针,并且它是空的。这给我带来了两个疑问。

  1. 在 c 中,我们可以给 char* 9 并说它是指向地址 9 的指针吗?我们不会收到任何错误或警告吗?

  2. 好吧,假设 (char*) 0 确实是指向地址 0 的字符的指针,但是这个地址 0 是什么意思呢?我的意思是我们怎么能说它是空的?在那种情况下, (char*) 1 或 (char*) 2 等的值是多少?

编辑:只是把它放在这里不管它有没有帮助。当我发现execllinux 系统调用中的最后一个参数为 null 并且我看到一个看起来很奇怪的语法时,我开始搜索这个问题:(char *) 0。

谢谢。

0 投票
2 回答
1369 浏览

c++ - c/c++ 中的指针到字符数组赋值

过去我一直在使用 Visual Studio 2010/2013/2015,这种语法是可能的:

我决定继续并改变我对 Linux 编码的生活方式,因为我已经安装了 g++ 并将 SlickEdit 作为我的 IDE。

好像这句话已经不行了。任何人都可以请说明为什么?

但是,这有效:

错误与c ++ 11有关。

有谁知道为什么会这样?不是如何修复它,因为在我的工作区中没有任何方法可以安装 c++11 编译器,我只是好奇它是否与编译器如何工作的背景有关。我对第一行代码的了解是,它在堆栈上创建了一个常量变量并创建了一个新指针,将自己设置为该 ESP 的值,但在第二行中,它计算常量变量上的字母数量,然后最后设置一个空终止符作为结果。

哦,还有一件事 - > 第一个在 GCC/GPP 中设置的方式似乎也有所不同,因为第一个类型是 {char*&} 而第二个是 {char(*)[12] },对此也有任何解释吗?谢谢!

0 投票
1 回答
779 浏览

c++ - 使用 char * 的凯撒密码?C++

所以我尝试使用带有char *'s 的 Ceasar Cipher,我写了一个简单的函数,如下所示:

看起来它应该可以工作,但事实并非如此。运行程序时会抛出错误。

这是我如何调用此函数的示例:

在你说“为什么不直接使用string?”之前,答案是我在某个 SDK 上编写 C++,使用string. 好的,但是是的,任何形式的帮助都将不胜感激,谢谢!

0 投票
2 回答
4585 浏览

c - 指向 2D char 数组的指针和指向 2D int 数组的指针有什么区别?

我的问题:

  1. 请帮助我清楚地了解 char 数组和 int 数组的数据存储机制

  2. 在上面的程序中,我理解当指向 char 数组的指针指向 char 的 2D 数组时,如语句 A 所示,它可以正确显示,但是当它被普通 char 指针指向并尝试在语句 C 中打印 char 时,它会出现 SegFault ,相反,它应该打印'n'(第一个数组“指针”中的第三个数字字符)所以有混淆为什么如果int数组我在语句D中得到正确的元素n = 11以及为什么在这种情况下(语句C)它是打印不正确。

  3. 如果是 char 数组,数据将如何存储?它会以如下所示的形式存储


如果它是这样存储的,那么它应该像语句 D 中显示的整数指针数组一样工作 请帮助我指导这个问题并澄清我在 char 和 int 数组存储的情况下遇到的问题。

0 投票
2 回答
1846 浏览

c - 链表 char 指针 scanf 输入

我正在尝试使用多次输入到链表中的字符指针scanf。但是每次我输入新输入时name,所有字段都会发生变化。

这是我的链接列表:

这是我的主要功能:

插入功能:

基本上如果我输入:

注意:当我手动输入数据时,这些功能按预期工作,scanf例如:

0 投票
1 回答
1047 浏览

c++ - C++ MFC:从 Char* 创建 CString 时出现内存泄漏

当我运行尝试从剪贴板读取时,我遇到了内存泄漏。

示例代码:

根据 Visual Studio,它是上面的中间行导致内存泄漏。这一行:

如果我不运行它,则不会报告泄漏。但如果我运行它,我会在 Visual Studio 输出窗口中得到以下调试输出:

有任何想法吗?

更新:在上面的代码中添加了 OpenClipboard(nullptr)。在实际代码中也有 nullptr 检查。只是在这里保持清洁以减少保护子句代码的数量。

0 投票
5 回答
203 浏览

c - SIGSEGV 关于修改 char * 元素

在下面的程序中,


调试器:


SIGSEGV 开启str2[1] = 's';

根据我的理解,由于声明,不能修改abc指向的,其中字符串文字是常量。st1const char *st1 = "abc"

为什么char *typestr2不允许修改元素?stringliteraldef也是常量字符串文字。

0 投票
1 回答
369 浏览

c - strtok 不适用于非 const char 参数

我有这个功能,可以取一个句子并反转每个单词。我必须就地修改值,返回值应该为 Null。我无法修改主要内容:

在我的reverser功能中,我使用strtok需要non-const char*

即使使用 strdup 它也不起作用,我不知道为什么......有人有什么建议让它起作用吗?谢谢你