我收到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;
}
答案 0 :(得分:0)
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);
}