让我们考虑一个数组(比如int a[25];
)。
稍后在某个循环的帮助下,我开始将用户输入存储在此数组中。
在某些时候,如果用户选择删除他刚刚从数组输入的值。
如何为我的程序用户执行此操作。
我可以将其设为0,但0也是他可以输入的值;所以我只想把它变成NULL或带有一些垃圾值,就像我初始化数组时一样。
答案 0 :(得分:2)
你不能。
如果你定义
int a[25];
然后a
由25个int
元素组成。一旦为其赋值,每个元素都会保留该值,直到它被重新分配,或者直到数组不再存在为止。你不能删除"数组中的值。整数没有特殊的NULL
值,因为有指针。
您可以选择一个特殊值,表示"空" element(也许是INT_MIN
) - 但是您无法将该值存储为数据。或者您可以使用另一个数据结构(可能是bool
数组)来跟踪a
的每个元素的当前值是否有效。
答案 1 :(得分:2)
您无法从数组中删除元素。在C数组中存储为连续的内存块,因此您无法删除元素。您可以使用以下任何选项:
-1
,将该元素标记为已删除。