gpt4 book ai didi

c - 读取输入(int)并使用 malloc 和 realloc 将其存储到数组中

转载 作者:太空宇宙 更新时间:2023-11-04 07:17:16 25 4
gpt4 key购买 nike

我正在尝试从标准输入读取整数,但我不知道长度。我试过了,但我不知道为什么它不起作用

#include <stdio.h>
#include <stdlib.h>

int main()
{
int *arr = (int *) malloc(sizeof(int));


int sizeCounter = 0;
int tmp = 0;
while(scanf("%d", &tmp) != EOF)
{

arr = (int *) realloc(arr, sizeof(arr)+sizeof(int));
arr[sizeCounter] = tmp;
sizeCounter++;

}
}

错误 - realloc():无效指针:0xb76d8000 *

最佳答案

这一行是错误的。

    arr = (int *) realloc(arr, sizeof(arr)+sizeof(int));

sizeof(arr)+sizeof(int) 是一个常量。它等于 sizeof(int*)+sizeof(int)

你需要的是:

    arr = (int *) realloc(arr, (sizeCounter+1)*sizeof(int));

关于c - 读取输入(int)并使用 malloc 和 realloc 将其存储到数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23642413/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com