gpt4 book ai didi

c - 反向数组(带有 argc 和 argv)+ 如何打印它

转载 作者:太空宇宙 更新时间:2023-11-03 23:38:27 26 4
gpt4 key购买 nike

我是 c 的初学者,我想根据用户的输入切换 argv 数组的元素,使用另一个动态分配的数组,但是在将值(或字符)放入其中时我遇到了问题数组,错误是:赋值从指针生成整数而不进行强制转换 [-Wint-conversion] 我没有得到问题......然后我想打印新选项卡但我不能因为,我该怎么做?

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

int main(int argc, char*argv[]) {
/*TO BE COMPLETED*/
int *tab =malloc(argc*sizeof(char));
int i = 0;
if (tab == NULL)
{
fprintf(stderr, "Not enough memory!\n");
exit (EXIT_FAILURE);
}
printf("tab = [");
for (i = argc; i > 1; i--)
{
int k = 0;
tab[k] = argv[i];
k +=1;
//printf(" %c," tab[k]);
}

printf(" ]");
free(tab);
return EXIT_SUCCESS;
}

最佳答案

assignment makes integer from pointer without a cast [-Wint-conversion] tab[k] = argv[I];

您收到此警告是因为您已将 tab 声明为 int * 类型。 argv 是一个 char * 数组,因此您要将指针(同样,char *)分配给整数数组中的一个条目。

im trying to allocate a new tab that contains argc elements (the inputs) and returns the inputs but in reverse

好的,但是您的代码实际上在做的是:

int *tab =malloc(argc*sizeof(char));

英语:分配一个大小为 argc * 1 的 block ,并将其地址分配给一个类型为整数指针的指针。听起来你的意思是创建一个字符指针数组,即 malloc(argc * sizeof(char*)),但如果你这样做,那么 tab也应输入为 char **

关于c - 反向数组(带有 argc 和 argv)+ 如何打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52908792/

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