说我有一个char **“鲍勃”,我在malloc/realloc对char **的限制?
char **bob = malloc(10 * sizeof(bob[0]));
形式malloc和说每一个我在Bob存储元素,我的malloc在
形式一定量的空间bob[num] = malloc(10);
我的问题是,你可以只bob下的malloc元素达到你将char **本身粘贴的数量吗?
I.e.如果bob[num] = malloc(10);
重复了5次,我们总共有50个字节 - 因为它超过了原来的10 * sizeof(bob[0])
(mallocs 40),这是否会导致程序崩溃?
或者是你的malloc在char **下的元素的内存量不受分配给char **本身的内存的限制吗?
我已经为我的char **分配了40个,但当程序崩溃时,我尝试向其中插入第13个元素。当我分配44,它插入第21个元素后,而不是崩溃。这很混乱,我认为4个字节= 1个指针? –
@RobertBenedict指针的大小取决于平台。在使用内存时可能存在一个错误,您应该发布有关崩溃问题的新问题。 – molbdnilo
@RobertBenedict如果您为10个指针分配空间并写入第13个“元素”,则调用*未定义行为*。这并不意味着它会在11或20甚至385时崩溃。它可以做*任何*,因为它是* undefined *。 –