簡體   English   中英

如何在C中將動態int數組元素初始化為0

[英]How to initialize a dynamic int array elements to 0 in C

我創建了一個動態數組,我需要將所有成員初始化為0.如何在C中完成?

   int* array;
    array = (int*) malloc(n*sizeof(int));

在這種情況下,您將使用calloc()

array = (int*) calloc(n, sizeof(int));

可以安全地假設所有系統現在都將零位表示為零。

§6.2.6.2保證這一點:

對於任何整數類型,所有位為零的對象表示應該是該類型中零值的表示。

也可以組合使用malloc() + memset() ,但由於本答案注釋中討論的原因,使用calloc()可能更有效。

memset(array, 0, n*sizeof(int));

或者,您可以使用calloc分配您的內存塊,它會為您執行此操作:

array = calloc(n, sizeof(int));

calloc文檔:

void * calloc(size_t nmemb,size_t size);

calloc()函數為每個大小為字節的nmemb元素數組分配內存,並返回指向已分配內存的指針。 內存設置為零。 ...

使用calloc函數( 用法示例 ):

int *array = calloc(n, sizeof(int));

來自calloc參考頁面

void *calloc(size_t nelem, size_t elsize);

calloc()函數應為nelem元素數組分配未使用的空間,每個元素的大小(以字節為單位)為elsize 該空間應初始化為所有位0。

memset(array, 0, n * sizeof *array);
                    for (i=0; i<x; ++i){
                        array[i]=0;
                    }

這應該夠了吧。 我想你必須創建一個循環,使數組中的每個元素都為0。 Memset也可以為你工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM