gpt4 book ai didi

c - 填充哈希表的函数

转载 作者:行者123 更新时间:2023-11-30 18:48:21 25 4
gpt4 key购买 nike

对于家庭作业,我必须创建一个不带参数的函数,以便用 NULL 填充哈希表。这是表的声明(我无法更改它),以及我如何调用该函数。

#include <stdio.h>
#include <stdlib.h>
#define MAX 10

int main()
{
char* htab[MAX];
htab = mkempty();
}

这是我创建的函数

#include <stdio.h>
#include <stdlib.h>
#define MAX 10

char* mkempty()
{
char* ensemble[MAX];
int i=0;
for (i=0;i<MAX;i++)
{
ensemble[i]=NULL;
}
return ensemble;
}

当我编译它时,我得到了这个:

 error: assignment to expression with array type
htab=mkempty();

我理解错误,但我不知道如何填写此表。

声明必须是:char* htab[MAX]; ,并且该函数没有任何参数。

最佳答案

给定表格:

char* htab[MAX];

将其全部设置为 NULL 的最佳方法是:

memset(htab, 0, sizeof(htab));

如果您需要在函数内执行此操作,则函数必须将数组作为指针加上大小:

void mkempty(char** array, size_t count)
{
memset(array, 0, count * sizeof(char*));
}

然后这样调用:

mkempty(htab, MAX);

现在,有些人会告诉您,将指针“清零”并不一定会使其变为 NULL。这些学究们是正确的:上面对 memset() 的使用在技术上依赖于一些东西,但在所有制造的机器上可能不是 100% 正确的。具体来说,它无法在 20 到 50 年前制造的一些大型计算机上运行。我猜你的作业不是在 20 世纪 80 年代的电脑上做的。

关于c - 填充哈希表的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46136064/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com