gpt4 book ai didi

c - 有关字符串和 stdio.h 库的未知错误

转载 作者:行者123 更新时间:2023-11-30 17:05:53 25 4
gpt4 key购买 nike

我收到在 stdio.h 库中发现的未知错误。请有人检查一下,告诉我代码有什么问题(但我认为它应该可以正常工作)。附:我是新来的,所以如果这是一个糟糕的问题,请不要责怪我。代码:

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

// Conversion from a number to a string
char *i2s(int broj);

int main()
{
char string1;
int br, n;
do
{
printf("How much numbers?\n -"), scanf("%d", &n);
} while (n < 1);
for (int i = 0; i < n; i++)
{
printf("\nbr = "), scanf("%d", &br);
string1 = *i2s(br);
printf(" %s", string1);
}
free(string1);
getch();
return 0;
}

char *i2s(int broj)
{
char *pom;
int z=0,br=0,p;
if (broj < 0)
{
z = 1;
broj = -broj;
}
p = broj;
do
{
br++;
p /= 10;
} while (p);
pom = (char *)calloc(br + 1 + z, sizeof(char));
if (z)
pom[0] = '-';
do
{
pom[--br + z] = '0' + broj % 10;
} while (broj /= 10);
return pom;
}

最佳答案

char string1;
free(string1);

字符串 1 不是指针。

此外,在以下部分中,每次运行循环时都会覆盖 string1。这样,除非您在循环内执行此操作,否则您就没有指向 free() 在函数内分配的内存的指针。

for (int i = 0; i < n; i++)
{
printf("\nbr = "), scanf("%d", &br);
string1 = *i2s(br);
printf(" %s", string1);
}

关于c - 有关字符串和 stdio.h 库的未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35044078/

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