gpt4 book ai didi

c - 是否会为 typedef 结构指针分配内存?

转载 作者:行者123 更新时间:2023-12-02 08:22:58 25 4
gpt4 key购买 nike

我有以下程序,其中有一个结构。我要为其分配一些值并将其写入文件。但这里的困惑是,我刚刚声明了一个指向结构的指针,还没有分配内存。那么变量赋值是如何工作的呢?我能够从文件“/home/info”中正确检索值

#include <stdio.h>
#define FILEE "/home/info"

typedef struct my_info
{
int i;
int j;
int k;
int l;
}_my_info;

void main()
{
_my_info *my_info;
int fd;
FILE *fp;
my_info->i=100;
my_info->j=300;
my_info->k=200;
my_info->l=400;
fp = fopen(FILEE,"w");
if (fp == NULL)
printf("Error in opening file\n");
fd=fwrite(my_info, sizeof(_my_info), 1, fp);
if (fd<0)
printf("Error while writing\n");
fclose(fp);
}

最佳答案

当你声明my_info

_my_info *my_info;

它将有一个未定义 值。在您的情况下,my_info 的值在 RAM 的有效内存地址范围内。因此,将对其进行写入和读取。

但是,您并不知道您因此而更改了哪个其他内存。这可能会导致内存损坏,尤其是在较大的程序中。

关于c - 是否会为 typedef 结构指针分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35076670/

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