我想在我的程序中重复使用的数组有问题。我需要动态更改大小并清除它。但不幸的是,调整大小不起作用。
uint8_t * readBuffer; // Create array pointer
readBuffer = (uint8_t *) malloc(4); // Mem. alloc. 4bytes
memset(readBuffer, 0, sizeof(readBuffer); // Reset array
// Do stuff
free(readBuffer) // Release mem. block
....
readBuffer = (uint8_t *) malloc(1) // Mem. alloc. 1byte
memset(readBuffer, 0, sizeof(readBuffer); // Reset array
// Do stuff
free(readBuffer) // Release mem. block
在调整大小的步骤中,我的数组的长度仍然是前者(4)。
我用free
错了吗?
此外,还有更有效memset
的清算方式吗?
提前致谢。