图中ptr不是被等于指向malloc申请的地址么,为什么底下for循环里面scanf还要加&呢?不是已经是地址了么,有没有兄弟能帮忙看看
你可能是搞混指针的概念了
arr[1000]
这种方法开辟的空间,是在栈区的这两个之间最大的区别是:malloc开辟的内存空间是动态的,我们可以在程序内部设置realloc进行扩容,而arr[1000]
这种方式,程序一开始运行就锁死了
其次,malloc开辟的空间,在自定义函数内部开辟后,还能在main函数中访问。而arr[1000]
开辟的空间,出函数就销毁了,在main中无法使用
所以这里scanf内部依旧是要用&,因为你开辟的是int类型的空间,使用方法和数组arr[1000]
是完全一致的
如果对你有帮助,还请点个采纳,万分感谢!
最后,请截图提问,谢谢
因为你没有按指针的方式用,而是用变量数组的处理,所以就还需要取地址。
[]等于偏移加解引用