如何解决int* 动态重新分配在 C 中的大小为 8 时失败?
我想将整数存储在动态分配的 int 数组中
这是代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int *arr = (int*) malloc(sizeof(int)); //Size 1 int
for(int i = 0; i < 10 ; i++) //loop for inserting elements
{
arr[i] = i; //insert i element
printf("%d\n",i + 2); //prints arr size + 1
arr = (int*) realloc(arr,i + 2); //realloc int* size + 1
}
return 0;
}
结果如下:
~/eda/practica7/ $ ./test
2
3
4
5
6
7
8
realloc(): invalid next size
Aborted
无论我做什么,我的 int* arr 的重新分配总是在大小 8 处停止。
我已经检查过是否有足够的可用内存,看起来确实如此。
有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。