gpt4 book ai didi

c - C中的这个声明有什么问题?

转载 作者:太空宇宙 更新时间:2023-11-04 06:32:01 25 4
gpt4 key购买 nike

我定义了一个结构。

typedef struct bucket {
char *key;
void *value;
struct bucket *next;
} Bucket;

这个函数在名为“htable.h”的文件中定义。

int put(Table *table, const char *key, void *value) {

Bucket insertBucket;
strcpy(insertBucket.key, key);

return 0;
}

这不应该有效吗?

最佳答案

问题是您没有为字符指针 key 分配任何内存,而您正试图将一个字符串复制到它。它给你未定义的行为。
key 只是一个未初始化的字符指针,它只是指向一个随机地址。要能够使用任何指针,有两个条件:

  1. 它应该指向一个有效的内存区域&
  2. 应保留内存供您使用(应拥有)

你违反了两者。

关于c - C中的这个声明有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603599/

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