黑马程序员技术交流社区
标题:
关于结构体和指针,快崩溃了,求搭救。
[打印本页]
作者:
jingkai
时间:
2015-5-19 16:27
标题:
关于结构体和指针,快崩溃了,求搭救。
下面是代码:
#import <Foundation/Foundation.h>
typedef struct student{
int age;
double height;
}* myStu;
int main(int argc, const char * argv[]) {
@autoreleasepool {
myStu stu1,stu2;
stu1->age=20;
stu1->height=46.0;
stu2->height = 50.0;
stu2->age=20;
NSLog(@"%d-%f-%d-%f",stu1->age,stu1->height,stu2->age,stu2->height);
}
return 0;
}
编译的时候一丁点错误都没有,可是运行崩溃,求解,求搭救
作者:
mony
时间:
2015-5-19 17:16
#import <Foundation/Foundation.h>
typedef struct student{
int age;
double height;
}myStu;
int main(int argc, const char * argv[]) {
@autoreleasepool {
myStu stu1,stu2;
stu1.age=20;
stu1.height=46.0;
stu2.height = 50.0;
stu2.age=20;
NSLog(@"%d-%f-%d-%f",stu1.age,stu1.height,stu2.age,stu2.height);
}
return 0;
}
复制代码
这样试试
作者:
mony
时间:
2015-5-19 17:19
主要你定义的是地址,但是初始化没有分配地址...
作者:
mony
时间:
2015-5-19 17:22
如果按照楼主原来的想法的话,就需要先分配内存。像下面的方法。
#import <Foundation/Foundation.h>
typedef struct student{
int age;
double height;
} *myStu;
int main(int argc, const char * argv[]) {
@autoreleasepool {
myStu stu1 = malloc(sizeof(myStu));
myStu stu2 = malloc(sizeof(myStu));
stu1->age=20;
stu1->height=46.0;
stu2->height = 50.0;
stu2->age=20;
NSLog(@"%d-%f-%d-%f",stu1->age,stu1->height,stu2->age,stu2->height);
}
return 0;
}
复制代码
作者:
Emma
时间:
2015-5-19 18:33
不知道为什么要定义一个指向结构的指针类型?不过你这样编译器只会创建指针,而结构是不会创建的
作者:
等风继续吹
时间:
2015-5-19 21:24
还没学到那里去....
作者:
jingkai
时间:
2015-5-22 07:42
mony 发表于 2015-5-19 17:22
如果按照楼主原来的想法的话,就需要先分配内存。像下面的方法。
受教了 谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2