动态分配char数组和int数组的结构

AGS

我试图用来malloc分配struct包含一个char数组和一个int数组的内存我将使用来自文件长度的信息来填充这两个数组,该文件的长度我事先不会知道。

typedef struct bulk_data{
    int *l_bulk_pos_arr;
    char (*l_bulk_anc_arr)[10001];
}bulk_data;

我仍在学习内存分配,但是我在这里想像的是,由于每个char数组元素的大小都是固定的,所以我不必遍历该数组来分配内存。至此,我现在知道了我需要的数组元素(n_rows)的数量。我已经尝试了以下方法(显然不是同时所有的方法):

struct bulk_data *bulk_counts;
    bulk_counts = malloc(sizeof(bulk_data)); // 1st attempt
    bulk_counts = (bulk_data *)malloc(sizeof(bulk_data)); // 2nd
    bulk_counts = malloc(sizeof(bulk_data) * n_rows); // 3rd
    bulk_counts = (bulk_data *)malloc(sizeof(bulk_data) * n_rows); // 4th

编译时没有错误,但是上面列出的尝试似乎没有正确分配空间:

(gdb) p bulk_counts->l_bulk_anc_arr
$1 = (char (*)[10001]) 0x0
(gdb) p bulk_counts->l_bulk_anc_arr[0]
Cannot access memory at address 0x0

(gdb) p bulk_data->l_bulk_pos_arr
$2 = (int *) 0x0
(gdb) p bulk_data->l_bulk_pos_arr[0]
Cannot access memory at address 0x0

我想知道如何为这种情况分配内存,但是在您不知道每个char数组元素中的字符数的情况下,我也想知道

萨胡

l_bulk_anc_arr是指向s数组的10001 char指针它不是数组。

您仍然必须为其分配内存。

struct bulk_data *bulk_counts;
bulk_counts = malloc(sizeof(bulk_data));
bulk_counts->l_bulk_pos_arr = malloc( /*some size*/ );
bulk_counts->l_bulk_anc_arr = malloc(10001);

现在,您可以使用:

(*bulk_counts->l_bulk_anc_arr)[0] = 'a';
(*bulk_counts->l_bulk_anc_arr)[1000] = '\0';

或者

bulk_counts->l_bulk_anc_arr[0][0] = 'a';
bulk_counts->l_bulk_anc_arr[0][1000] = '\0';

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结构数组,动态分配

来自分类Dev

动态分配结构数组

来自分类Dev

具有动态分配的char数组的C ++结构

来自分类Dev

在结构内部动态分配一个int数组

来自分类Dev

如何在结构数组中初始化和动态分配int指针成员?

来自分类Dev

为结构数组动态分配内存

来自分类Dev

分段故障动态分配的结构数组

来自分类Dev

如何制作动态分配的结构数组?

来自分类Dev

c动态分配结构数组

来自分类Dev

分段故障动态分配的结构数组

来自分类Dev

从文件C动态分配结构数组

来自分类Dev

动态分配多个结构的数组

来自分类Dev

使用动态分配的char数组的长度

来自分类Dev

动态分配和复制数组

来自分类Dev

动态分配包含动态分配数组的结构体数组

来自分类Dev

如何将double的动态分配结构和子结构的内容传输到数组?(C)

来自分类Dev

在结构中动态分配数组-C

来自分类Dev

包含动态分配数组的结构中的段错误

来自分类Dev

函数返回后释放结构的动态分配数组。

来自分类Dev

如何复制动态分配的结构体数组?

来自分类Dev

使用指向结构C ++的指针创建动态分配的数组

来自分类Dev

用文字读取指向结构的动态分配数组

来自分类Dev

动态分配和数组

来自分类Dev

读写动态分配的数组

来自分类Dev

将值从静态char数组分配给动态分配的char数组

来自分类Dev

从const char数组初始化为动态分配的const char数组

来自分类Dev

如何在C ++中删除由动态分配的数组成员组成的动态分配的结构?

来自分类Dev

为结构体中的结构体数组动态分配内存

来自分类Dev

动态分配数组说明