|
|
1
67
行为由实现定义,您将收到一个空指针或一个地址。但是,为接收到的指针调用free不会导致问题,因为:
|
|
2
33
它可以返回NULL,也可以返回非NULL指针 你不能取消引用。标准(7.20.3)规定了两种方式:
|
|
|
3
4
很抱歉给您添麻烦,我应该阅读手册页: malloc() 分配大小字节并返回指向已分配内存的指针。内存未被清除。如果size为0,则malloc()返回NULL或 以后可以成功传递给free()的唯一指针值。 免费的 释放ptr指向的内存空间,该内存空间必须由以前对malloc()、calloc()或realloc()的调用返回。否则,或 free(ptr)以前已被调用,出现未定义的行为。如果ptr为NULL,则不执行任何操作。 至少对于gnu libc来说,这似乎是正确的 |
|
|
4
3
根据c标准 如果请求的空间大小为零,则行为由实现定义:要么返回空指针,要么行为就好像大小是某个非零值,但返回的指针不应用于访问对象。 |
|
|
5
1
|
|
|
6
0
请参阅“不要对malloc(0)或calloc(0)的结果进行假设”, https://www.securecoding.cert.org/confluence/display/seccode/VOID+MEMxx-A.+Do+not+make+assumptions+about+the+result+of+malloc%280%29+or+calloc%280%29 . |
|
|
7
-3
这是非常随机的。 当我添加了一个检查,如果要分配的大小为零,就不要调用malloc,我去掉了这个。
-阿什图什 |
|
9-Pin · 释放具有内部空字节的动态分配字符串 1 年前 |
|
Viewed · 如何从popen中获得结果? 1 年前 |
|
|
dhutturi · malloc()没有分配我期望它[复制]的内容 1 年前 |
|
|
vansergh · 如何为malloc分配的数组释放内存? 2 年前 |
|
|
EagleStar · 显示错误的值:C指针还是malloc问题? 2 年前 |