C中的结构化结构

时间:2016-05-27 22:23:41

标签: c memory struct

当我为这样的结构分配内存时:

typedef struct _My_struct {
    int myInt;
} My_struct;

My_struct* tmp = (My_struct*)malloc(sizeof(My_struct));

然后我尝试在其中设置一些值:

tmp->myInt = 0;

我的程序崩溃了。 在调试模式下运行时,我看到tmp中的所有值都是NULL,因此可能因NullPointerException而崩溃。 为什么我不能正确分配内存?

2 个答案:

答案 0 :(得分:4)

您的代码正常运行。你甚至可以test it online。你必须有一些你没有告诉我们的错误或错误。

#include <stdio.h>
#include <stdlib.h>

int main() {

    typedef struct _My_struct {
        int myInt;
    } My_struct;

    My_struct* tmp = malloc(sizeof(My_struct));

    tmp->myInt = 5;
    printf("Output: %d", tmp->myInt);

}

<强>输出

Output: 5

答案 1 :(得分:2)

我的错误。忘记了a。我的编译器似乎并不关心,很奇怪。 不管怎样,谢谢!