问题标签 [pointer-to-array]

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 投票
0 回答
20 浏览

arrays - 指向数组的指针的值和指向数组的指针的值如何相同?

这是下面的代码

编译后,“ptr 的地址”和“*ptr 的地址”的输出结果是相同的。输出 :

这是否意味着 ptr 在某种程度上或确切地说是指向指针的指针?如果是,那么 ptr 和 *ptr 的地址如何相同。

如果这是不同的东西,请解释一下。

此外,我们将“&arr”保存在指向数组的指针中,这意味着数组 arr 的第一个元素的地址,如果这是正确的,那么 ptr & *ptr 也应该指向某个不同的位置。

还是像这样的东西,虽然ptr和*ptr指向同一个地址,但是以某种不同的方式,所以ptr指向整个数组,本质上是在地址的帮助下指向整个数组数组的第一个元素。

尽管

*ptr 是指向数组元素的普通指针。

0 投票
1 回答
60 浏览

c++ - 如何处理cpp中指向数组的指针的未定义行为?

当我遇到这个奇怪的事情时,我正在学习指针和指向数组的指针。

谁能解释为什么这有效?

并返回:

图片

但这会产生一个令人讨厌的错误:

像这样 :

图片

我知道这是未定义的行为,那么有什么办法可以解决这个问题吗?

0 投票
2 回答
66 浏览

arrays - int (*p)[10]=s 和 int (*o)[5]=&s 有什么区别?

基于约定 int (*o)[5]=&s; 是指针 o 指向具有 5 个元素的数组的正确方法。

我们也可以在这个语句中写 this

但为什么更喜欢

因为它们都返回相同的输出。

该程序的输出是:

0 投票
2 回答
82 浏览

c - 指向数组的指针、malloc 和越界访问

给定 C 中的指向数组的指针,我们能否为其分配足够的内存以存储额外的元素(超出指定的数组大小),然后使用 [] 运算符或指针算法安全地访问这些元素?

考虑这个例子:

此代码编译良好并在 gcc 中产生正确的结果。但是,我不确定它是否会调用未定义的行为。

谢谢!

0 投票
2 回答
1191 浏览

c - 分配的内存少于指向数组的指定大小

在 C 中,如果我们只访问位于分配内存中的元素,那么将内存分配给指向数组的指针是否“合法”?还是这会调用未定义的行为?

如果这本身不是未定义的行为,那么访问另一个不相关的对象,其内存地址恰好落在数组未分配部分的地址空间内,是否会导致严格混叠违规?

0 投票
1 回答
88 浏览

c - 指向数组和有效类型的指针

在 C 中指向数组的指针的情况下,我对有效类型感到困惑。通过指向数组的指针访问单个成员是否仅在该成员的内存或数组包含的所有内存上赋予有效类型?标准在这方面是否明确?

这是一个实际的例子:

上面的代码会调用未定义的行为吗?

我在网上搜索,发现大多数关于聚合类型和有效类型的讨论都涉及结构指针,而不是指向数组的指针。即便如此,对于设置单个结构成员是否仅对该成员或该结构将包含的整个内存块赋予有效类型似乎存在分歧和混淆。

0 投票
0 回答
32 浏览

node.js - 如何从不是数组Nodejs Mongodb的聚合游标中获取值

我有一个这样的聚合:

所以预期的结果应该是这样的:

问题是聚合函数返回一个不能转换为数组的游标,因为它不是文档列表,它是一个对象,您可以在其中找到数组。我无法从光标本身获得这两个数组。有人可以指导我了解我在这里缺少的内容。谢谢