【发布时间】:2016-01-27 17:26:39
【问题描述】:
我收到一个在 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;
}
【问题讨论】:
-
= *i2s(br);...hmmmmm -
您可以从编译代码开始。并询问是否有任何您不理解的警告或错误消息。以下是您的代码的当前错误:ideone.com/l2YkrA。什么错误信息你不明白?
-
我收到这些错误 clip2net.com/s/3tvMfMN 抱歉,我一个都不明白 @mikedu95
-
如果您一个都不理解也没关系,因为 SO 正是为了询问您不理解的内容,但忽略编译器消息表明您没有努力了解错误的原因。现在您可以忘记这一点,因为您已经得到了答案,但下次请记住。因为大多数时候,您可以自己修复错误:)。
-
对于第一个错误:one 和 two。对于第二个错误:您正在将整数转换为没有强制转换的指针,即您正在“释放”一个值,而不是指针本身,第二个错误之后的注释会给您一个提示。最后,the third error。一点点搜索就能走很长的路。
标签: c