我只是尝试使用malloc,代码运行良好,但是visual studios给了我一些问题。你应该这样做还是我做错了?
警告显示在行上:
chadley->name = "chadley"
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int age;
char *name;
} Person;
int main()
{
Person bradley;
bradley.name = "bradley";
bradley.age = 2334444;
Person *chadley = malloc(sizeof(Person));
chadley->name = "chadley";
chadley->age = 234;
printf("Person object %s of age %d", chadley->name, chadley->age);
}
错误代码:取消引用空指针“chadley”
最佳答案
Person *
可以是空指针。它指的是值,而不是类型。
如果未能成功分配内存,malloc
将返回一个NULL
值。在使用之前,您应该始终检查从malloc
返回的值。
您可以检查返回的指针是否有效,方法如下:
Person *chadley = malloc(sizeof(Person));
if (!chadley) {
/* The allocation failed, don't continue. */
return 1;
}
chadley->name = "chadley";
chadley->age = 234;
关于c - Visual Studios给我取消引用空指针警告,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56995537/