#include
void main(void)
{
char ch = '#';
// p只是一个指针,本身存储的是你要存数据的地址,
// 你不提供它空间,怎么存储数据?
void *p = (void*)&ch;
*((char*)p)='c';
// 不能直接输出*p,因为没有对void数据的插入符<< 的重载。
cout << "*p = " << *((char*)p) << endl
<< "ch = " << ch << endl;
}
c语言中不允许将一个数赋值给指针。'c'就是一个数,所以肯定是不行的。这个地方要赋一个字符串,"c".
另外指针复制方法也不对。应该是这样。
void* p;
( (cha*)p ) = "c";
如果掌握得不熟练,最好不要用void指针,容易乱
void *p;只是定义了,根本没有分配空间,所以不能往里面写数据
怎么会?我这里通过编译了啊 你看你是不是输漏了
你用的什么环境哦??
我用的是“TC超想中英文对照编程系统”
#include "stdio.h"
#include "malloc.h"
void main()
{
void *p;
char *q;
p = malloc(4);//你要给它点空间,它才可以给你装东西
*(char*)p = 'c';
q = p;
putchar(*q);
}
这样