gpt4 book ai didi

c - 赋值中的类型不兼容,为什么我不能这样做?

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

我有一个结构体 The_Word,它有一个变量 char word[WORD_LENGTH]

我有以下内容

typedef struct The_Word
{
char word[WORD_LENGTH];
int frequency;
struct The_Word* next;
} The_Word;

int someFunc(char* word)
{
/*Rest of method excluded*/

struct The_Word *newWord = malloc(sizeof(struct The_Word));

newWord->word = word; // error here. How can I assign the struct's word to the pointer word
}

最佳答案

您需要使用strncpy复制字符串:

#include <string.h>

int someFunc(char* word)
{
/*Rest of method excluded*/

struct The_Word *newWord = malloc(sizeof(struct The_Word));
strncpy(newWord->word, word, WORD_LENGTH);
newWord->word[WORD_LENGTH - 1] = '\0';
}

您应该小心检查字符串是否适合数组。就是这样,当参数 char* word 的长度大于 WORD_LENGTH 时。

关于c - 赋值中的类型不兼容,为什么我不能这样做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984603/

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