gpt4 book ai didi

c - 建立字典

转载 作者:行者123 更新时间:2023-11-30 15:34:06 25 4
gpt4 key购买 nike

我有一个拼贴作业来构建动态字典,该作业必须与指针和动态分配一起使用(我知道这是我在这里所说的微不足道的东西)。不管我如何尝试使用代码,这就是我想出的。我确信我在这里有错误,我的问题实际上是如何正确实现内存分配,然后如何将单词/定义存储在我分配的内存中。

 printf("Please enter the amount of words in the dictionary.\n");
scanf("%d",&numOfWords);
getchar();
wordsArr = (char***)malloc(3 * sizeof(char**));
for (int i = 0; i < numOfWords; i++)
{
printf("Please enter the word and how many defenitions it has (1 or 2).\n");
scanf("%s %d",&wBuffer[i],&defs);
getchar();
wordsArr[i]=(char**)malloc(strlen(wBuffer)*sizeof(char*)+1);
strcpy(*wordsArr[i],wBuffer);
for (int j = 0; j < defs; j++)
{
printf("Enter the %d is:\n",i);
gets(dBuffer);
wordsArr[i][j]=(char*)malloc(strlen(dBuffer)*sizeof(char)+1);
strcpy(wordsArr[i][j],dBuffer);
}
}
//Dont mind this just for the print test
for (int i = 0; i < numOfWords; i++)
{
for (int j = 0; j < defs; j++)
{
printf("%s",wordsArr[i][j]);
}
}

}

最佳答案

也许可以试试这个(没有方便的 C 编译器)

char ***array;
array = malloc(numOfWords * sizeof(char**));
for (i = 0; i < rows; i++)
array[i] = malloc(3 * sizeof(char*)); // assumign 2 is your max definitions

这应该将 numOfWords 指针的内存分配指向一个字符数组数组,其中包含 3 个字符数组,第一个是字典单词,另外两个是定义。

关于c - 建立字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23431098/

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