c - 如何将指针数组初始化为NULL?

c - 如何将指针数组初始化为NULL?

我正在实现需要指针数组的基数排序,为了避免分段错误,我必须将其初始化为 NULL。

当我尝试:struct Node *Bucket[10] = NULL

但它给出了:error: invalid initializer

所以,我的老师建议:struct Node *Bucket[10] = {0}

所以我的问题是 {0} 和 NULL 有什么区别,我也尝试过:

struct Node *Bucket[10] ;

for(int i=0 ; i<10 ; i++)

{

Bucket[i] = NULL ;

}

{0} 与此 for 循环有何相同之处

编辑1:

还有一个额外的问题,为什么我们将 Bucket[0] .. Bucket[9] 设为 NULL 以及它如何防止分段错误。

void Radix_Sort(int *Arr)

{

int max ;

max = Max_element_in_array(Arr);

struct Node *Bucket[10] = {0} ;

for(int exp = 1 ; max / exp > 0 ; exp*=10)

{

int k=0 ;

for(int i=begin ; i

{

Append_a_linked_list(&Bucket[(Arr[i]/exp)%10],Arr[i]);

}

for(int j=0 ; j<10 ; j++)

{

while( Bucket[j] )

{

Arr[k++] = Delete_first_node(&Bucket[j]);

}

}

}

}

相关推荐

埃及媒体认为韩西之战主裁判甘杜尔没有错
bet3365标准版

埃及媒体认为韩西之战主裁判甘杜尔没有错

📅 06-30 👀 4131
亚马逊进口税费能免吗?税费怎么算?教会你4个实用避税技巧!
汽车全景天窗一般要加多少钱?
体育平台送365彩金

汽车全景天窗一般要加多少钱?

📅 06-28 👀 3113
java常用8种 设计模式
体育平台送365彩金

java常用8种 设计模式

📅 06-29 👀 3646