如何使用realloc更改内存大小?
在我的参数中,我有如何使用realloc更改内存大小?,c,pointers,C,Pointers,在我的参数中,我有 uint8_t* const Destination uint8_t size 所以我用realloc来改变内存的大小 *Destination = realloc(Destination, size); 然而,这不起作用,并给出了警告。 我是个新手,非常感谢大家的帮助 uint8_t* const Destination; 删除常量const意味着指针不能更改,而(更改)正是您要做的 移除指针前的星号。程序将停止编译,因为对于我的赋值,const,我不应该更
uint8_t* const Destination
uint8_t size
所以我用realloc来改变内存的大小
*Destination = realloc(Destination, size);
然而,这不起作用,并给出了警告。
我是个新手,非常感谢大家的帮助
uint8_t* const Destination;
删除常量
const
意味着指针不能更改,而(更改)正是您要做的
移除指针前的星号。程序将停止编译,因为对于我的赋值,const,我不应该更改任何参数。当常量存在时,有什么方法可以使用realloc吗?@user12908899:如果
目的地
是一个参数并且调用者需要使用存储,那么目的地
将需要类型为uint8\u t**
,传递一个uint8\u t*
的地址,因此,*目的地
的类型将为uint8\u t*
@user12908899,如果必须保持不变,则不应尝试更改它。//此外,由于Destination
是一个参数,因此在函数中更改其值不会影响调用者,因此即使尝试重新分配它也没有意义,除非您有办法将新指针返回调用者。@user12908899为什么要使用const限定符?@klutt它是赋值框架的一部分,所以我不应该修改它,所有的代码至少都要修改一次。