javascript

java

python

c#

node.js

reactjs

android

c++

php

html

jquery

ruby-on-rails

css

git

ios

.net

sql

c

string

<img src="//i.stack.imgur.com/bk9VA.png" alt="" class="sponsor-tag-img" width="18" height="16"/>android

在C中将2d数组归零的最快方法?

我想在C中反复清零一个大的2d数组。这就是我现在所做的:

// Array of size n * m, where n may not equal m
for(j = 0; j < n; j++)
{
    for(i = 0; i < m; i++)
    {  
        array[i][j] = 0;
    }
}

我尝试过使用memset:

memset(array, 0, sizeof(array))

但这仅适用于1D阵列。 当我打印2D阵列的内容时,第一行是零,但随后我得到了一大堆随机大数字,它崩溃了。

trans by 2019-09-15T06:12:51Z

c ++ - memset()返回值有什么用?

声明void返回void*,它始终与传递给函数的地址值相同。

返回值的用途是什么? 为什么不返回void

trans by 2019-09-11T10:56:33Z

c ++ - 将C int数组重置为零:最快的方法?

假设我们有一个带有T = int,unsigned int,long long int或unsigned long long int的T *myarray = new T[100],将所有内容重置为零的最快方法是什么(不仅用于初始化,而且在我的程序中多次重置内容))? 也许有memset?

同样的问题,如T *myarray = new T[100]这样的动态数组。

trans by 2019-09-04T11:31:49Z

C#中的memset相当于什么?

我需要用一个非零值填充byte[]。 如何在C#中执行此操作而不循环遍历阵列中的每个for

更新:评论似乎将此分为两个问题 -

  1. 是否有一个Framework方法来填充可能类似于for的byte []
  2. 当我们处理一个非常大的数组时,最有效的方法是什么?

我完全同意,正如埃里克和其他人所指出的,使用一个简单的循环就可以了。 问题的关键是看我是否可以学习一些关于C#的新东西:)我认为Juliet的并行操作方法应该比简单的循环更快。

基准:感谢Mikael Svenson:[http://techmikael.blogspot.com/2009/12/filling-array-with-default-value.html]

事实证明,简单的for循环是要走的路,除非你想使用不安全的代码。

抱歉我的原帖不清楚。 埃里克和马克的评论都是正确的; 需要有更多专注的问题。 感谢大家的建议和回应。

trans by 2019-05-31T19:02:16Z

c - 为什么在memset上使用bzero?

在我上一学期的系统编程课程中,我们必须在C中实现一个基本的客户端/服务器。初始化结构时,如bzero,或char缓冲区(我们用来在客户端和服务器之间来回发送数据) 教授指示我们只使用memset而不是bzero来初始化它们。 他从未解释过为什么,而且我很好奇是否有正当理由呢?

我在这里看到:[http://fdiv.net/2009/01/14/memset-vs-bzero-ultimate-showdown] bzero更有效率,因为事实上它只是将内存归零,所以它 不必做memset可能做的任何额外检查。 这仍然不一定似乎是绝对不使用bzero归零内存的理由。

bzero被认为已弃用,而且不是标准C函数。 根据该手册,出于这个原因,memset优于bzero。 那你为什么还想继续使用bzero而不是memset? 只是为了提高效率,还是更多? 同样,memsetbzero有什么好处,使它成为新程序的事实上的首选方案?

trans by 2019-05-18T18:03:13Z

1 共1页