*指针数组的某些*成员未初始化为null?

use*_*028 1 c malloc linked-list

struct findaddress {
     struct findaddress *next[11];
     struct user *myuser;
};
int main(void){
struct findaddress *findhead=(struct findaddress *)(malloc(sizeof(struct findaddress)));
    int i=0;
    for (i;i!=11;i++){
        if (findhead->next[i]==NULL)puts("success");else puts("fail");
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

对我来说,令人不安的结果是:

fail
fail
success
success
success
success
success
success
success
success
success
Run Code Online (Sandbox Code Playgroud)

知道为什么底部的两个指针都失败了,而其他指针正在传递.

有人可以这么善良地开导我吗?

eya*_*alm 5

malloc()不初始化内存,只分配堆上的空间.您看到的数组内容是随机的.它只是同一区域的先前内容.

使用calloc(),如果你想确保它是用零初始化.