关于结构指针类型数组做函数参数的一个有关问题
关于结构指针类型数组做函数参数的一个问题
#include <stdio.h>
typedef struct student
{
int ID;
}stu;
void process(stu* arr[])
{
int i;
for(i = 0; i < 3; i++)
{
arr[i]->ID = i + 1;
printf("id = %d\n", arr[i]->ID);
}
}
void main()
{
stu* class[3];
process(class);
}
大家看看这个程序错在哪了?非常拗口
------解决方案--------------------
使用未初始化的指针了.
另外, class 是 C++ 的关键字, 虽然这是 C 里面, 最好还是别用.
#include <stdio.h>
typedef struct student
{
int ID;
}stu;
void process(stu* arr[])
{
int i;
for(i = 0; i < 3; i++)
{
arr[i]->ID = i + 1;
printf("id = %d\n", arr[i]->ID);
}
}
void main()
{
stu* class[3];
process(class);
}
大家看看这个程序错在哪了?非常拗口
------解决方案--------------------
使用未初始化的指针了.
另外, class 是 C++ 的关键字, 虽然这是 C 里面, 最好还是别用.
void main()
{
stu* cls[3] = { (stu*)malloc(sizeof(stu)),
(stu*)malloc(sizeof(stu)),
(stu*)malloc(sizeof(stu)) };
process(cls);
}