繁体   English   中英

malloc 和结构体以及如何访问结构体的 malloc 内存

[英]malloc with structs and how to access memory of malloc of struct

如果我有一个简单的结构,例如如何使用 malloc 为该结构动态分配内存?

struct Dimensions{
int height, width;
char name;
};

我不确定如何解决这个问题,我试过了

struct Dimension* dim = malloc(sizeof(struct Dimensions));

此外,我希望稍后在我的代码中循环访问高度和宽度变量。 我的第一个想法是使用指针,但我不确定这到底是什么。

会不会像

int h = *width

我对 C 很陌生。谢谢

您动态分配该结构的方式是正确的:

struct Dimension* dim = malloc(sizeof(struct Dimensions));

此外,我希望稍后在我的代码中循环访问高度和宽度变量。

您应该首先为该dim分配一些值,例如:

dim->high = 1;
dim->width = 2;

您刚刚使用的name成员可能不是您需要的char 通常它是一个字符串: char name[100]; . 但是,您不能对该字符串使用赋值,因此请使用strcpy

然后你可以稍后访问它:

int h = dim->high;

请记住,一旦您完成了动态分配的内存,您应该free它:

free(dim);
return 0;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM