-1
我目前有一個結構對的數組。爲了插入一個新元素,我將數組重新分配給arraySize + 1,然後將insertIndex,arraySize-insertIndex移到目標arr + insertIndex + 1。這個邏輯有什麼不對嗎?我收到Uninitialised value was created by a heap allocation
,我懷疑這是因爲有一些不正確有關此實現......Realloc和memmove
的代碼是在這裏:
arraySize++;
arr = realloc(arr,arraySize*sizeof(pair));
...
/* Calculate insertIndex */
...
if (insertIndex+1 < numPairs) {
memmove(arr+insertIndex+1,arr+insertIndex,arraySize-insertIndex-1);
}
大小必須是來自'realloc()'手冊頁的'sizeof(pair)' – BLUEPIXY 2014-11-02 21:59:25
的大小:「該函數可以將內存塊移動到新位置(其地址由函數返回) 「。 – 2014-11-02 21:59:46
或者它可能在失敗時返回0 ... – Deduplicator 2014-11-02 22:03:52