问个C语言关于结构的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 MayRoy
  • 开始时间 开始时间
M

MayRoy

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠,在下在面试的时候遇到过一个关于结构数组的问题想向大家请教一下,还望帮忙!
具体问题是:先定义一个结构,然后声明一个该结构的数组变量,要初始化它;在下有些困惑,比如:
struct sTest{ int iNo;
char* cName;
};
struct sTest ArrayOfTest[10];要求用一个C语言的库函数来初始化它。
另外的是访问结构数组时会出现什么问题,如:
struct sTest ArrayOfTest[MAX];
for(int i=0;i<MAX;i++)
{ int Temp= ArrayOfTest.iNo
}
这个循环会出现什么问题?
 
1, Alloc
2,c里的ArrayOfTest[10]等于delphi里的 ArrayOfTest[0..10]
最后个元素没有访问到。。
C好长时间没用,说错了不要见怪啊~
 
第一个应该是memset(ArrayOfTest, 0, sizeof(ArrayOfTest));
第二个没看懂题目用意, 还有iNo后面没分号???
 
Writer大侠,那个分号是我忘了,它问的意思就是这样访问结构数组,会不会出现什么错误.
linuxping大侠,这样恐怕不行,malloc函数返回的是一个void *的类型的指针.
 
用库函数初始化那就用 memset吧。
不会,这样是标准的访问方法。
 
1、struct sTest ArrayOfTest[10];已经定义并且初始化了,还要怎么初始化?如果要置零就用memset(ArrayOfTest, 0, sizeof(ArrayOfTest));
就可以了。
2、什么问题也不会出现,就是没有意义而已。
 
to linuxping
1, Alloc
2,c里的ArrayOfTest[10]等于delphi里的 ArrayOfTest[0..10]
最后个元素没有访问到。。
应该是 [0..9] 。
 
多谢大家帮忙,我又明白了很多,多谢.
 
后退
顶部