gpt4 book ai didi

创建指向结构的指针给出 open_stackdumpfile

转载 作者:行者123 更新时间:2023-11-30 19:36:17 25 4
gpt4 key购买 nike

我有一个定义如下的结构:

struct Complex {    
double _real;
double _img;
};

我正在尝试创建一个函数,该函数根据 C 字符串输入返回指向新复数的指针。我首先根据我在其他 stackoverflow 问题中看到的内容尝试创建一个结构体:

 struct Complex * newComplex = (struct Complex*)malloc(sizeof(struct Complex));

可悲的是,代码在运行时崩溃了,说:

    0 [main] complex 14380 cyg
trace to complex.exe.stackdump

我还尝试运行以下命令,结果出现相同的错误:

struct Complex * newComplex;
newComplex = (struct Complex*) malloc(sizeof(struct Complex));

当我尝试调试这段代码时,我将其分成几部分,得出以下代码,该代码似乎可以正常工作:

 struct Complex * newComplex = (struct Complex*)malloc(sizeof(struct Complex));
void *temp = malloc(sizeof(struct Complex));
newComplex = (struct Complex*) temp;

我很想对此行为做出解释。

最佳答案

您的初始代码看起来不错,问题一定出在其他地方。

// test.c
#include <stdlib.h>
#include <stdio.h>

struct Complex {
double _real;
double _img;
};

int main() {
struct Complex * newComplex = malloc(sizeof(struct Complex));

newComplex->_real = 0;
newComplex->_img = 1.0;

printf("(%f %f)\n", newComplex->_real, newComplex->_img);
free(newComplex);
return 0;
}

gcc -Wall test.c ; ./a.out 产生:

(0.000000 1.000000)

关于创建指向结构的指针给出 open_stackdumpfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41172707/

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