gpt4 book ai didi

char ** array = malloc(sizeof(char*)*len) vs malloc(sizeof(char)*len)

转载 作者:行者123 更新时间:2023-11-30 20:40:33 29 4
gpt4 key购买 nike

上述分配可能会出现什么样的问题?如果我们分配实际数据类型的大小而不是该类型指针的大小?

对于 sizeof (char*) > sizeof (char) 的字符来说,这会是一个问题吗?其他数据类型和用户定义的结构怎么样?

谢谢

最佳答案

使用 type *variable = malloc(sizeof(*variable) * len) 并避免该问题。

示例:char ** array = malloc(sizeof(*array) * len);

<小时/>

char ** array = malloc(sizeof (char*)*len)正确分配内存。

char ** array = malloc (sizeof (char)*len) 仅当 sizeof(char) == sizeof(char*) 时才能正确分配足够的内存,即除非在特殊的平台上,否则肯定是错误的。

关于char ** array = malloc(sizeof(char*)*len) vs malloc(sizeof(char)*len),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21763341/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com