gpt4 book ai didi

c - 分配结构数组时遇到问题

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

我的项目要求我动态分配内存。我做错了什么?

/*Setting up my Struture*/
struct album_ {
int num_tracks;
struct tracks_ tracks;
int playlist_hits[];
};
typedef struct album_ album;

/*Try to allocate memory for structure*/

fscanf(album_file,"%d", &number_of_album);

album *all_albums_p = (album *)malloc(sizeof(album)*number_of_album);

for(i=0;i < number_of_album; i++){
all_albums_p[i].num_tracks = (int *)malloc(sizeof(int));
all_albums_p[i].num_tracks = i+1;
printf("%d\n",all_albums_p[i].num_tracks);
}

Error Message
warning: assignment makes integer from pointer without a cast [enabled by default]

另外,如果我想返回这个数组,return all_albums_p 是否正确?

最佳答案

这一行

all_albums_p[i].num_tracks = (int *)malloc(sizeof(int));

应该是

all_albums_p[i].playlist_hits = (int *)malloc(sizeof(int));

因为你分配的是album数组,你需要用指针替换flexible array成员:playlist_hits应该改为int*.

关于c - 分配结构数组时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955908/

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