我是一个完全的初学者。
我有一个将 int
转换为 array
的函数。
#include <math.h>
#include <stdio.h>
int *convertIntArray(int number) {
int n = log10(number) + 1;
int i;
int *numberArray = calloc(n, sizeof(int));
for (i = 0; i < n; ++i, number /= 10) {
numberArray[i] = number % 10;
}
return numberArray;
}
我想通过将整数传递给 convertIntArray
函数来初始化 main
函数中名为 sample
的数组。我的伪代码如下所示:
int main(int argc, char *argv[]) {
int sample = convertIntArray(150);
// rest of main function
但显然这是行不通的。正确的做法是什么?
最佳答案
该数组由 converIntArray
函数分配,并返回指向其第一个元素的指针。如果您使用适当的类型定义了 array
,则可以将此指向 array
的指针存储在 main
中:
int main(int argc, char *argv[]) {
int *sample = convertIntArray(150);
// rest of main function
但请注意,您无法从指针和值判断 array
所指向的数组的大小。您应该返回始终分配最大大小,即 10 int
或以其他方式返回大小,例如作为数组的第一个元素,然后您将使用额外的元素分配该大小。
关于c - 在 C 中使用函数初始化数组变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52486349/