删除C中int*的内容
如果我有这样一个数组:删除C中int*的内容,c,arrays,C,Arrays,如果我有这样一个数组: int * array = ... 如果我想删除它的内容,在C中最快、最有效的方法是什么?如果在C中使用 int* array = malloc(some_size); 然后你就可以用 free(array); 快速高效与该过程没有多大关系-只是它是如何完成的-但你几乎可以相信,没有任何方法可以更快地完成它…如果“删除内容”意味着将数组归零,那么使用以下命令应该会起作用: size_t element_count = ... // This defines how
int * array = ...
如果我想删除它的内容,在C中最快、最有效的方法是什么?如果在C中使用
int* array = malloc(some_size);
然后你就可以用
free(array);
快速高效与该过程没有多大关系-只是它是如何完成的-但你几乎可以相信,没有任何方法可以更快地完成它…如果“删除内容”意味着将数组归零,那么使用以下命令应该会起作用:
size_t element_count = ... // This defines how many elements your array has
memset(array, 0, sizeof(int) * element_count);
请注意,有一个指向数组的指针而没有其他信息是不够的:您还需要提供数组元素的数量,因为无法从指针本身派生此信息。是否使用malloc为内容分配内存?您拥有的是指针,而不是数组;如果它指向您用
malloc
分配的内存,那么您用free
删除它。是的,指针本身没有使用内存,它只是指向内存中的一个位置。答案取决于你如何在那个记忆位置填充内容。不清楚你在问什么,在“…”中是什么?问题中没有任何东西表明这一点。