数组

2018-08-14

C语言 – 访问数组越界有多危险?

访问其边界之外的数组有多危险(在C中)?有时候我会从数组外部读取(我现在理解我然后访问我的程序的某些其他部分使用的内存,甚至超出了它)或者我试图将值设置为数组之外的索引。该程序有时会崩溃,但有时只是运行,只会产生意想不到的结果。 现在我想知道的是,这真的有多危险?如果它损坏了我的程序,那就不是那么糟糕了。另一方面,如果它打破了我的程序之外的东西,因为我以某种方式设法访问一些完全不相关的内存,那么它是非常糟糕的,我想。我读了很多“任何可能发生的事情”,“细分可能是最不好的问题”,“你的硬盘可能变成粉红色,独角兽可能会在你的窗下唱歌”,这很好,但真正的危险是什么? 我的问题: 除了我的程序之外,从数组外部读取值会损坏任何内容吗?我会想象只是看事情不改变任何东西,或者它会改变我碰巧触及的文件的’last time opened’属性? 除了我的程序之外,在数组外部设置值可以破坏任何东西吗?从这个 Stack Overflow问题我收集到可以访问任何内存位置,没有安全保证。 我现在从XCode中运行我的小程序。这是否为我的程序提供了一些额外的保护,它无法到达自己的内存之外?它会伤害XCode吗? 有关如何安全地运行我的固有错误代码的任何建议? 我使用OSX 10.7,Xcode 4.6。 就ISO C标准(语言的官方定义)而言,访问其边界之外的数组具有“ 未定义的行为 ”。字面意思是: 行为,在使用不可移植或错误的程序结构或错误数据时,本国际标准不对此要求...

Read More
2018-07-11

php – array_map,array_walk和array_filter之间的区别

究竟是什么区别array_map,array_walk和array_filter。我从文档中看到的是,您可以传递回调函数来对提供的数组执行操作。但我似乎没有发现它们之间有任何特别的区别。 他们做同样的事吗? 它们可以互换使用吗? 如果它们完全不同,我将非常感谢您的帮助。 改变价值观: array_map可以不改变输入数组内的值array_walk; 特别是,array_map永远不要改变它的论点。 数组键访问: array_map不能用数组键操作,array_walk可以。 返回值: array_map返回一个新数组,array_walk只返回true/ false。因此,如果您不想通过遍历一个数组来创建数组,则应该使用array_walk。 迭代多个数组: array_map也可以接收任意数量的数组,它可以并行迭代它们,而array_walk只能在一个数组上运行。 将任意数据传递给回调: array_walk可以接收一个额外的任意参数传递给回调。这与PHP 5.3(引入匿名函数时)无关。 返回数组的长度:...

Read More
2018-04-01

PHP:从数组中删除一个元素

有没有一种简单的方法可以使用删除数组中的元素PHP,从而foreach ($array)不再包含该元素? 我认为设置它null会做到这一点,但显然它不起作用。 答案 有不同的方法可以删除一个数组元素,其中一些对于某些特定的任务比其他的更有用。 删除一个数组元素 如果你想删除一个数组元素,你可以使用unset()或替代array_splice()。 同样,如果你有这个值,并且不知道删除你可以array_search()用来获取密钥的元素的密钥。 unset() 方法 请注意,当你使用unset()数组键时不会改变/ reindex。如果您想重新索引您可以使用的密钥,array_values()之后unset()会将所有密钥转换为从0开始的数字枚举密钥。 码 <?php $array = array(0...

Read More
2018-03-30

如何从JavaScript中的数组中删除特定的元素?

我有一个整数数组,我使用该.push()方法向它添加元素。 有没有简单的方法从数组中删除特定的元素?相当于类似的东西array.remove(int);。 我必须使用核心 JavaScript – 不允许任何框架。 答案 首先,找到index你想要移除的元素: var array = [2, 5, 9]; var index = array.indexOf(5);...

Read More