2 herojia 1 herojia_1 于 2013.09.01 12:48 提问

C语言中通过指针能不能知道它在内存中的分配方案

例如char* pstr;
有几种方式:
pstr = "123";
char s[] = "123";
pstr = s;

pstr = (char*)malloc(4);
pstr[0] = '1';
pstr[1] = '2';
pstr[2] = '3';
pstr[3] = '\0';

那么,如何通过pstr判断它是哪种方式的?

1个回答

cx1468059916
cx1468059916   2013.09.02 20:57

这两种的结果都是一样的不必纠结,只有数组和指针在分配的时候是不同的,

http://blog.csdn.net/cxroom/article/details/10339635

cx1468059916
cx1468059916 可以看下这篇文章http://blog.csdn.net/hc260164797/article/details/7563301
4 年多之前 回复
herojia_1
herojia_1 我纠结之处在于:malloc分配方式下是动态的,可以自己释放;全局静态“123”只能系统释放,是静态的;数组也是静态的,不能自己释放。有时候,我们只能得到指针,而又想判断是不是malloc分配的,若是便free,否则不free。这样,我们就需要通过指针判断是否为malloc分配的,不然free便会是程序崩溃。大神,有没有解决方案哟?
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!