请问指针可以这样用吗?
#include "stdio.h"struct aa
{char *b;
}*p;
main()
{p=(struct aa *)malloc(sizeof(struct aa));
printf("请输入字符串\n");
scanf("%s",p->b);
}
这个字符指针能存放一个字符串吗?
[此贴子已经被作者于2007-10-11 17:25:19编辑过]
搜索更多相关的解决方案:
指针
----------------解决方案--------------------------------------------------------
指针,别乱用啊,用之前请分配内存空间
----------------解决方案--------------------------------------------------------
不能。
struct aa
{char *b;
}*p;
main
{
printf("请输入字符串\n");
scanf("%s",p->b); /* 字符变量怎么能保存字符串,main函数定义也不对。*/
}
----------------解决方案--------------------------------------------------------
不能这样用,p代表数据类型,是一个指向结构体aa的指针类型,不能直接用p->b来引用结构体中的成员变量。
可以用p声明一个变量,再引用成员变量:
[此贴子已经被作者于2007-10-11 16:47:37编辑过]
----------------解决方案--------------------------------------------------------
struct aa
{
char *b;
};
int main()
{
aa *p = new aa;
p->b = new char[100];
printf("请输入字符串\n");
scanf("%s",p->b);
delete p->b;
delete p;
return 0;
}
看看还有没有错
[此贴子已经被作者于2007-10-11 16:40:14编辑过]
----------------解决方案--------------------------------------------------------
C里对应改用malloc和free
----------------解决方案--------------------------------------------------------
可是我用TC编绎的时候为什么能通过.
----------------解决方案--------------------------------------------------------
因为各个编译器他们需要的库函数不同。
比如你用的是TC编译器,需要用到getch()函数。在TC里面就不需要加头函数#include <conio.h>,但是在VC++ 6.0编译器里就必须加,如果不加,它会提示getch()函数没有被定义。
----------------解决方案--------------------------------------------------------