->传址符号的使用
#include <stdio.h>//只有有警告,但是无法运行int main(void)
{
struct Nme
{
char name = "ji";
} *nme;
printf("%s",nme->name);
return 0;
} 本帖最后由 jackz007 于 2020-1-3 12:13 编辑
根本要害是,nme 只是一个指针,并非一个存储空间,只能用来指向一个 struct Nme 的结构实体。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
struct Nme{
char name ;
} * nme ;
if((nme = (struct Nme *)malloc(sizeof(struct Nme)))) { // 需要在内存中实际分配一个 struct Nme 类型的结构体空间用于储存数据,然后,让 nme 指向它。
strcpy(nme -> name , "ji") ;
printf("%s\n" , nme -> name) ;
} else {
fprintf(stderr , "Error : malloc()\n\n") ;
}
} 首先,C里是不能定义类内初始值的,C++11以上才有这种写法。
第二,你的nme只是个指针,没有分配空间。直接访问nme->name当然会报错
页:
[1]