C++中的结构体在java中应该怎么定义
4个回答
展开全部
struct Stu
{
int n;
};
void test(struct Stu *s[])
void main()
{
struct Stu *s;
s=new Stu[10];//请问这里是不是动态开辟一个struct的数组呢????????
//然后我调用test()
test(s);
}
你定义的s是指向一个结构体变量的,而不是结构体数组
如果要指向一个结构体数组,应该这样定义,struct Stu (*s)[];//s指向一个结构体数组
s=new Stu[10];
这样就可以了
另外:void test(struct Stu *s[])//Stu *s[],那么s是一个指针数组,而不是一个指针,但是s数组中的元素都是指向结构体变量的指针变量...
你的意思是想让s指向一个结构体数组,那么改成这样:void test(struct Stu (*s)[])应该就可以了.(还不行的话,就直接改成void test(struct Stu *s)试试,不过我感觉这个可能不对,因为类型也不匹配,但没有运行过..)
呵呵
祝你学习顺利...
刚运行过了,我的修改不行
一楼应该是正解...
s=new Stu[10];//请问这里是不是动态开辟一个struct的数组呢????????
是在内存的堆区中动态开辟一个长度为10的结构体数组....
堆区中开辟的内存不会因为函数的结束而自动释放,所以函数结束前要使用一条delete s;语句来释放分配的内存...
改成下面的就对了...
#include<iostream.h>
struct Stu
{
int n;
};
void test(struct Stu *s[])
{}
void main()
{
struct Stu **s;
s=new Stu*[10];//请问这里是不是动态开辟一个struct的数组呢????????
//然后我调用test()
test(s);
}
你的意思是s指向一个指针数组,那么s就是一个指向指针的指针变量,所以应该是
struct Stu **s;
s中的元素是指针变量,那么就应该这样:s=new Stu*[10];
呵呵,希望对你有所帮助..
{
int n;
};
void test(struct Stu *s[])
void main()
{
struct Stu *s;
s=new Stu[10];//请问这里是不是动态开辟一个struct的数组呢????????
//然后我调用test()
test(s);
}
你定义的s是指向一个结构体变量的,而不是结构体数组
如果要指向一个结构体数组,应该这样定义,struct Stu (*s)[];//s指向一个结构体数组
s=new Stu[10];
这样就可以了
另外:void test(struct Stu *s[])//Stu *s[],那么s是一个指针数组,而不是一个指针,但是s数组中的元素都是指向结构体变量的指针变量...
你的意思是想让s指向一个结构体数组,那么改成这样:void test(struct Stu (*s)[])应该就可以了.(还不行的话,就直接改成void test(struct Stu *s)试试,不过我感觉这个可能不对,因为类型也不匹配,但没有运行过..)
呵呵
祝你学习顺利...
刚运行过了,我的修改不行
一楼应该是正解...
s=new Stu[10];//请问这里是不是动态开辟一个struct的数组呢????????
是在内存的堆区中动态开辟一个长度为10的结构体数组....
堆区中开辟的内存不会因为函数的结束而自动释放,所以函数结束前要使用一条delete s;语句来释放分配的内存...
改成下面的就对了...
#include<iostream.h>
struct Stu
{
int n;
};
void test(struct Stu *s[])
{}
void main()
{
struct Stu **s;
s=new Stu*[10];//请问这里是不是动态开辟一个struct的数组呢????????
//然后我调用test()
test(s);
}
你的意思是s指向一个指针数组,那么s就是一个指向指针的指针变量,所以应该是
struct Stu **s;
s中的元素是指针变量,那么就应该这样:s=new Stu*[10];
呵呵,希望对你有所帮助..
展开全部
使用一个高质量的第三方库Javolution:
http://javolution.org/apidocs/javolution/io/Struct.html
enum Gender{MALE, FEMALE};
struct Date {
unsigned short year;
unsigned byte month;
unsigned byte day;
};
struct Student {
enum Gender gender;
char name[64];
struct Date birth;
float grades[10];
Student* next;
};
public enum Gender { MALE, FEMALE };
public static class Date extends Struct {
public final Unsigned16 year = new Unsigned16();
public final Unsigned8 month = new Unsigned8();
public final Unsigned8 day = new Unsigned8();
}
public static class Student extends Struct {
public final Enum32<Gender> gender = new Enum32<Gender>(Gender.values());
public final UTF8String name = new UTF8String(64);
public final Date birth = inner(new Date());
public final Float32[] grades = array(new Float32[10]);
public final Reference32<Student> next = new Reference32<Student>();
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
c++里面的struct和classs关键字基本等价。不同在于struct里面的成员默认是public
java里面的话就用class就行。
java里面的话就用class就行。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++中的结构体struct是兼容C来的,在java中没有struct的定义,复杂数据类型都用class定义一个类,创建一个对象。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询