作者shadown (本帐号已停止使用)
看板C_and_CPP
标题[问题] VC里使用struct的问题
时间Thu Apr 23 19:24:47 2009
请问一下喔~
底下这个是 turbo C书里的范例,我照着输入到 VC中编译,
会出现这样的错误讯息..
struct.cpp(10) : error C2236: unexpected 'struct' 'person'
不知道该怎麽修改才可以使用呢?
#include<stdio.h>
void main()
{
struct person
{
char *name;
int age;
}
struct person p;
scanf("%s",p.name);
scanf("%d",&p.age);
printf("NAME: %s AGE: %d",p.name,p.age);
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.133.117.77
1F:→ phstudy:; 04/23 19:27
2F:→ shadown:可以了~谢谢楼上~:) 不过改完後,改出现.. 04/23 19:31
3F:→ shadown:local variable 'p' used without having been initialize 04/23 19:31
4F:→ shadown:它是说没有初始化???? 04/23 19:33
5F:→ DWR:struct person p; p没有给定初始值 04/23 19:47
6F:推 Bencrie:p.name 指标未初始化,他没有指到有效的记忆体位置。 04/23 19:47
7F:→ Bencrie:直接写入可能会 segmentation fault 04/23 19:47
8F:→ shadown:囧..那请问一下,这样的话要怎麽更改呢?假使不想把name改 04/23 19:53
9F:→ shadown:成name[],还是想保持 *name的话..>.< 04/23 19:54
10F:→ shadown:自回..在struct person p;下面加一行p.name=new char [10] 04/23 20:12
11F:→ shadown:这样就可以了,可是却必须指定大小,那这样就跟在struct里指 04/23 20:13
12F:→ shadown:事先指定的意思差不多了..XDDDD 04/23 20:13
13F:推 ledia:还是有差啦, 用 new 的在用到时才会花掉这些空间 04/23 21:21
14F:推 VictorTom:明明就在struct里直接指定大小差很多吧.... 04/23 21:23
15F:→ VictorTom:程式可以在run time去计算或等user输入才觉得要 04/23 21:23
16F:→ VictorTom:new 给 *name 多大的空间, 是可以弹性指定大小的.... 04/23 21:24
17F:→ VictorTom:如果要用不需要指定大小的, 也许你要自己实作类似 04/23 21:24
18F:→ VictorTom:vector的东西, 或者直接拿现成的来用....@_@" 04/23 21:25
19F:→ MOONRAKER:不要急着学new,现在记忆体使用没什麽限制 04/23 23:14
20F:→ MOONRAKER:固定大小阵列不会让你电脑爆炸 04/23 23:15
21F:推 wupojung:但那是个好习惯阿..... 我学长就爆过- - 04/24 07:28
22F:→ MOONRAKER:爆了就有血淋淋的教训,学新的东西才会深刻 XD 04/24 10:53
23F:→ shadown:XD 原来是这样,所以还是要指定记忆体大小会好一点..XD 04/24 11:12
24F:→ shadown:因为是初学者,所以还没有碰到new的东西..^^|| 04/24 11:12
25F:→ MOONRAKER:也不全如此啦!这只是我的看法 04/24 16:09
26F:→ MOONRAKER:一开始就习惯new的使用也没什麽不好,学java/.NET也好接 04/24 16:10