gpt4 book ai didi

c - 调用函数后如何设置全局数组的大小? (C)

转载 作者:行者123 更新时间:2023-11-30 19:07:44 26 4
gpt4 key购买 nike

调用函数后是否可以设置全局数组的大小?示例:如果您正在从文件中读取一些数字,并且希望将这些数字存储在全局数组中,但在从文件中读取这些数字之前您不知道这些数字有多少,因此数组的大小为未知。

最佳答案

不可以,数组的大小无法调整。所以如果你有类似的东西

int myArray[10];

您无法更改大小。

您可以做的是使用动态内存,例如:

int* myArray;

int main(void)
{
int myArraySize = 10;
myArray = malloc(myArraySize * sizeof(int)); // Allocate memory for 10 int
if (myArray == NULL)
{
// Out of memory
return -1;
}

// Now you can use myArray just like an ordinary array,
// like myArray[0] to myArray[9]

//..... Read from file in a loop
int numbersRead = 0;
while (....)
{
// Read a number from the file
number = .....;

if (numbersRead == myArraySize)
{
// No more space in array

// Use realloc to allocate
// more memory, i.e. so that you change the "array" size

// Update myArraySize to the new array size
}
myArray[numbersRead] = number;
numbersRead++;
}

free(myArray);

return 0;
}

顺便说一句 - 一般来说,你应该避免全局变量

关于c - 调用函数后如何设置全局数组的大小? (C),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473291/

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