gpt4 book ai didi

C - 为 char 类型数组分配内存

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

我的任务是创建 char 类型数组,然后输入该数组应包含的元素数,然后为该数组分配内存并在将所有元素输入数组后打印它。问题是,如果数组是 int 类型,我知道该怎么做,但对于 char,我只打印随机字符。我写了这段代码:

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

int main() {


int n, i;
char *arrA;


printf("Enter number of elements: ");
scanf("%d", &n);
printf("Enter array elements: \n");
arrA = (char*)malloc(n * sizeof(char));
for (i = 0; i < n; ++i) {
scanf("Array element: %c \n", arrA + i);
}

for (i = 0; i < n; ++i) {
printf("%d. array element is: %c\n", i + 1, arrA + i);
}

free(arrA);
return 0;
}

如何让它适用于 char 类型数组?

最佳答案

换行:

printf("%d. array element is: %c\n", i + 1, arrA + i);

到:

printf("%d. array element is: %c\n", i + 1, *(arrA + i));

或:

printf("%d. array element is: %c\n", i + 1, arrA[i]);

因为现在您正在尝试打印指针本身而不是它的内容。

另请阅读 this link关于为什么不转换 mallocthis one 的结果检查 malloc 的结果。

关于C - 为 char 类型数组分配内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43892339/

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