问题出现
最近在温习算法,有一个对传入数组排序的问题,我想的是,写一个函数,函数中直接创建一个新的数组,把排序好的结果放在新数组里,再修改原来的数组指针,指向新数组,但是修改指针的时候出现了问题。
为了说清楚,抓住主要矛盾,我写了这样的代码:
这里把数组的指针传进去却报错了。
可能原因问题(1)
尝试用malloc函数试试:
是没问题的,那指针还有不同的“类型”吗?结合下报错提示看看:
看来是有可能了,但有理论依据吗?
我们malloc出来的内存和创建数组时的内存的不同是有理论依据的。
我们创建一个数组,是由系统为你创建的,系统创建的内存一般地址比较低,而我们程序员自己申请的内存空间,内存地址比较高:
对此的疑问(1)
低地址的指针是没法修改的,因为数组是系统创建的
那是不是因为低地址的指针没办法修改,高地址的可以呢?
答案显然是否定的
我创建了一个变量num,把他的地址给pnum,pnum也是低地址,但是pnum确是可以修改的。
那是不是因为c++的毛病
=========先写到这儿吧。。。。。。。有点事