当前位置: 技术问答>linux和unix
奇怪 linux 下 动态创建数组 这样写说结构体的实参类型无效
来源: 互联网 发布时间:2016-06-25
本文导语: #include "stdio.h" #include "stdlib.h" struct fileifo { char filepath[32]; char filename[32]; int flag; }; struct fileifo *p=NULL; void creat(int n) { p=(struct fileifo *)malloc(sizeof(struct fileifo)*n); } int main() { int i=0; creat(5); for(i=0;ifilena...
#include "stdio.h"
#include "stdlib.h"
struct fileifo
{
char filepath[32];
char filename[32];
int flag;
};
struct fileifo *p=NULL;
void creat(int n)
{
p=(struct fileifo *)malloc(sizeof(struct fileifo)*n);
}
int main()
{
int i=0;
creat(5);
for(i=0;ifilename);
printf("%sn",p[i]->filename);
}
return 0;
}
如题,请问,我想这样引用改怎么修改?
#include "stdlib.h"
struct fileifo
{
char filepath[32];
char filename[32];
int flag;
};
struct fileifo *p=NULL;
void creat(int n)
{
p=(struct fileifo *)malloc(sizeof(struct fileifo)*n);
}
int main()
{
int i=0;
creat(5);
for(i=0;ifilename);
printf("%sn",p[i]->filename);
}
return 0;
}
如题,请问,我想这样引用改怎么修改?
|
还是 lz 的指针没学好
p 的类型是 struct fileifo *
p[i] 的类型是 struct fileifo,不能用 -> 访问成员,要用 .
非要用指针的话,就写成
p 的类型是 struct fileifo *
p[i] 的类型是 struct fileifo,不能用 -> 访问成员,要用 .
非要用指针的话,就写成
scanf("%s",(p+i)->filename);
|
楼上正解