今週Cを学んだばかりです。私の仕事は、ユーザーから大きな大きな整数入力を受け取り、それを構造体整数に格納し、適切な構造体整数を標準出力に出力する関数を作成することです。プログラムはそのように動作しますが、出力を与えるとすぐに応答を停止します。コンパイラで直接エラーが発生することはなく、何が問題なのかわかりません。プログラミングスタイルを改善するためのその他のアドバイス/ヒントも本当に感謝しています:)
// Header Files Go Here
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// Function Declarations Go Here
struct integer * convert_integer(char * stringInt);
void printer(struct integer * p);
struct integer {
int * arr;
int length;
};
// Main Program
int main() {
char * x;
x = (char *) malloc(sizeof(char) * 10000);
printf("Enter a small string\n");
scanf("%s",x);
int j = 0;
struct integer * book1;
book1 = convert_integer(x);
printer(book1);
return 0;
}
// Function Definitions Go Here
struct integer * convert_integer(char * stringInt) {
struct integer * x = malloc(sizeof(int) * 100);
int j = 0;
while (stringInt[j] != '\0') {
if (stringInt[j] < 48 || stringInt[j] >= 57) {
printf("Invalid input. Enter a number ");
return;
}
x->arr[j] = stringInt[j] - 48;
j++;
}
x->length = j;
printf("\n the length is %d\n", x->length);
return x;
}
void printer(struct integer * p) {
int j = 0;
while (j < p->length) {
printf("%d", p->arr[j]);
j++;
}
}