读书人

字符指针申请动态内存的有关问题

发布时间: 2012-08-02 11:35:25 作者: rapoo

字符指针,申请动态内存的问题
#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)#"在常量存储器。

读书人网 >C语言

热点推荐