字符指针,申请动态内存的问题
#include <stdio.h>
#include <stdlib.h>
char* strHead;
int main()
{
char *str;
strHead = str = (char *)malloc(sizeof(char)*100);// (unsigned)strHead 和 (unsigned)str 的值不一样,为什么
str = "-12.5/(-2.5)#";
//strHead = str; //这样是一样的
return 0;
}
[解决办法]
strHead指向全局内存区而str指向自己申请的动态堆内存区,一开始两者指向的内存在一个位置。
经过你str="-12.5/(-2.5)#";的操作后,两者指向的内存又不一样了,"-12.5/(-2.5)#"在常量存储器。