以下是引用farmerbee在2006-3-10 13:14:00的发言:
终于知道问题出在哪里了,谢谢啊!!不过还有。。
void main()
{
char * p;//此时p指向一个随机内存
printf("1. %p\n",p);
p= (char *)malloc(2*sizeof(char));//此时p指向经malloc分配两个char大小的内存
printf("2. %p\n",p);
p="hello word";//此时p指向“hello word”所在的静态内存
printf("3. %p\n",p);
//printf出来看看p的值的变化,你对指针的理解不够
p[0]='a';
p[1]='r';
printf("%s",p);
}
意思就是要经过MALLOC 分配后的内存才能写,那么这里p[0] p[1]两个空间应该是经过分配的,为什么不能写呢?
九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。 -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。 -毛泽东