2015-05-03 50 views
0

所以我在整數讀入一個數組,我如何用空格填充空元素。我知道他們得到了這個長負數的初始化。我檢查他們是否有這些,然後用空格填充這些元素?如何用空格填充未初始化的數組元素? c

int* scores = malloc(51 * sizeof(int)); 

FILE* fp; 

char* string = malloc(21 * sizeof(char)); 

int length; 

int* plength = &length; 

int number_of_conversions; 

long offset = 0; 

long* poffset = &offset; 

int* scores = malloc(51 * sizeof(int)); 

scores[50] = '\0'; 

int total; 

int* ptotal = &total; 

int i = 0; 

這是陣列

+0

array is this int * scores = malloc(51 * sizeof(int)); –

+0

假設用「空格」表示「'」字符:用這種方式填充「int」會導致帶有'538'976'288'(又名'0x20202020')的'int',假設它是一個32位'int'。確定你想要這個? – alk

回答

1

首先,可以考慮使用calloc(),因爲你使用分配的內存保存着一個NULL結尾的字符串。如果您想用特定的值初始化內存,包括\ 32或''請嘗試使用memset()。

int* scores = calloc(51 * sizeof(int)); 
memset(scores, ' ', 50*sizeof(int)); 
// no longer needed 
// scores[50] = '\0'; 
0

malloc沒有設置內存什麼特別。根據運行時和操作系統的不同,您可能會得到一些一致的實現特定模式,例如零,特定填充符,但不應該依賴於它 - malloc zeroing out memory?

要設置數組什麼特別的事,你可以

  • 使用memset,讓您設置內存特定字節(0似乎是你在找什麼)
  • 使用for循環設定值,在想要(即如果你想填充int陣列與一些非零數字像42)
  • 跟蹤有多少元素在數組中使用,而不是使用默認值填充整個數組。
相關問題