当我为这样的结构分配内存时:
typedef struct _My_struct {
int myInt;
} My_struct;
My_struct* tmp = (My_struct*)malloc(sizeof(My_struct));
然后我尝试在其中设置一些值:
tmp->myInt = 0;
我的程序崩溃了。 在调试模式下运行时,我看到tmp中的所有值都是NULL,因此可能因NullPointerException而崩溃。 为什么我不能正确分配内存?
答案 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
。我的编译器似乎并不关心,很奇怪。
不管怎样,谢谢!