求助,关于指针
t0h 2005-01-24 05:11:34 char* p = (char*)malloc(sizeof(char*));
char* q = (char*)malloc(sizeof(char*));
scanf("%s",p);
scanf("%s",q);
while(*p != '\0')
{
cout<<*p;
p ++;
}
cout<<endl<<sizeof(p)<<endl;
cout<<endl<<sizeof(q)<<endl;
//free(p);
//free(q);
以上代码,分配4字节内存,但是实际上付值为长度超过4字节的字符串也可以(但长度超过30个字符以后,*p就读不到了)
但是一旦长度超过4字节 free就会报错
想请问:
1:指针是指向内存的一个点,还是一个区域?
2:我删除自己的4个字节内存为什么会报错?