gpt4 book ai didi

带指针声明的 C 动态结构赋值

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

程序在接近分配时崩溃。我怎样才能让它发挥作用?提前致谢。抱歉,如果是转发的话。在任何地方都找不到类似的例子。

#include <stdio.h>

typedef struct _kv
{
char *key;
char *value;
} _kv;

typedef struct _kvs
{
_kv *kv;
int size;
} _kvs;

main()
{
_kvs a;

a.kv[0].key = "This is key One";
a.kv[0].value = "This is value One";

a.size = 1;

printf("%s = %s\n", a.kv[0].key, a.kv[0].value);
}

最佳答案

您已经创建了指针,但没有为内存腾出空间。您需要使用malloc将一些内存与指针相关联。

a.size = 1;
a.kv = malloc ( a.size * sizeof ( _kv ) );
int i;
const int string_sz = 80; // Or whatever else the string size should be
for ( i = 0; i < a.size; i++ )
{
a.kv[i].key = malloc ( string_sz );
a.kv[i].value = malloc ( string_sz );
}

strcpy ( a.kv[i].key, "This is key one" );
strcpy ( a.kv[i].value, "This is value one" );

关于带指针声明的 C 动态结构赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16856521/

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