小编Dil*_*xel的帖子

C:指向结构指针数组的指针(分配/释放问题)

我已经回到C中了解某些东西,但是我很难记住这种内存管理的工作原理.我想要一个指向结构指针数组的指针.

说我有:

struct Test {
   int data;
};
Run Code Online (Sandbox Code Playgroud)

那么数组:

struct Test **array1;
Run Code Online (Sandbox Code Playgroud)

它是否正确?我的问题是处理这件事.因此,数组中的每个指针都指向单独分配的内容.但我认为我需要先做到这一点:

array1 = malloc(MAX * sizeof(struct Test *));
Run Code Online (Sandbox Code Playgroud)

我无法理解上述内容.我需要这样做,为什么我需要这样做?特别是,如果我要为指针指向的每个东西分配内存,为指针分配内存意味着什么?

现在说我有一个指向结构指针数组的指针.我现在希望它指向我之前创建的相同数组.

struct Test **array2;
Run Code Online (Sandbox Code Playgroud)

我是否需要像上面那样为指针分配空间,或者我可以这样做:

array2 = array1
Run Code Online (Sandbox Code Playgroud)

c memory pointers memory-management

25
推荐指数
2
解决办法
8万
查看次数

基于概率的随机数

我在生成不遵循离散均匀分布的随机数时遇到了麻烦.

例如,假设我有5个数字(为了保持简单),生成数字k的概率为k/15.(k = 1到5)

我的想法是使用rand()生成一个随机数j,如果这个数字j是:

1 =>然后生成数字1

2或3 => num 2

4或5或6 => num 3

7或8或9或10 => num 4

11或12或13或14或15 =>数字5

现在将其缩放为生成1-10,1-100,1-1000.这是否按照我打算的方式工作?我已经构建了一个循环,每次需要生成一个数字时都会这样做,我认为它可能是低效的,因为它一直上升,直到找到在其中一个范围内生成的j数.​​..有什么可能是更好的方法去做这个?

编辑:或者可能使用正确的数字创建一个数组,然后使用rand()更好的解决方案?

c++ random distribution probability

9
推荐指数
2
解决办法
4111
查看次数

霍夫曼编码

在什么条件下,霍夫曼编码使字符串不可压缩?当所有角色以相同的频率/概率出现时?如果是这样,那怎么能证明这是真的呢?

compression string huffman-code

6
推荐指数
3
解决办法
2310
查看次数

这会根据这些概率给出适当的随机数吗?C++

码:

int random = (rand() % 7 + 1)
if (random == 1) { } // num 1
else if (random == 2) { } // num 2
else if (random == 3 || random == 4) { } // num 3
else if (random == 5 || random == 6) { } // num 4
else if (random == 7) { } // num 5
Run Code Online (Sandbox Code Playgroud)

基本上我希望这些数字中的每一个具有以下每个概率:1:1/7 2:1/7 3:2/7 4:2/7 5:1/7

这段代码会给我正确的结果吗?即如果这是无限次运行,我会获得正确的频率吗?这样做的方法不那么冗长吗?

c++ random probability

5
推荐指数
2
解决办法
475
查看次数

更新应用程序时运行警报会发生什么?

我需要弄清楚是否重新启动该警报,因为它是一个定时的服务器轮询,但应该只有一个该警报的实例.

android alarm alarmmanager android-alarms repeatingalarm

5
推荐指数
1
解决办法
69
查看次数

求出递归T(n)= T(n/2)+ T(n/4)+ T(n/8)?

我正在努力解决复发问题T(n) = T(n/8) + T(n/2) + T(n/4).

我认为首先尝试使用递归树方法,然后将其用作我对替换方法的猜测是个好主意.

对于树,因为在非叶级别没有工作,我认为我们可以忽略它,所以我试图在叶子的#上面提出一个上限,因为这是唯一相关的东西.

我认为树的高度是最长的路径T(n/2),它产生的高度为log2(n).那么我想树完成后,与各级充满(即我们有3T(n/2)),所以我们必须3^i在每一个级别的节点,所以n^(log2(3))离开.T(n)然后将O(n^log2(3)).

不幸的是,我认为这是一个不合理的上限,我想我已经让它有点太高了......关于如何解决这个问题的任何建议?

math big-o recurrence code-analysis asymptotic-complexity

3
推荐指数
1
解决办法
6788
查看次数

HTTParty :: get返回什么?

我还是Ruby的新手,并尝试使用HTTParty gem来帮助我编写一个API包装器.我提供HTTParty ::获取URI并解析JSON数据.从快速浏览和返回结果的行为方式来看,它看起来像哈希,但是它呢?我似乎无法在网上找到信息.StackOverflow上的另一篇文章显示使用HTTParty :: get(...).parsed_response来获取Hash,但这似乎已经过时了.

ruby parsing json httparty

2
推荐指数
1
解决办法
2731
查看次数