#1
by ryusei » 5年前
今、双方向の構造体の確認で、本の管理を行うようなプログラムを作っています。
これが途中まで作成したコードです。
//
#include <stdio.h>
#include <string.h>
#define MAX_ORDER 10
#define buf_size 80
//構造体を定義
struct list{
int book_number;
char title[buf_size];
int *next;
int *back;
};
//構造体に値を登録
void INSERT(struct list *book_list[], int insert_num)
{
//配列の要素数
int num = insert_num;
printf("inputs number is %d!\n", insert_num);
char buf[buf_size];
printf("bookname is enter\n");
fgets( buf, sizeof(buf), stdin);
book_list[num]->title = 1;
printf("%s\n", book_list[num]->title);
}
int main()
{
struct list book_list[20];
int i, insert_num, select_num;
insert_num = 0;
select_num = 0;
char buf[buf_size];
printf("order number is %d\n\n", MAX_ORDER);
puts("order select\n 1.INSERT\n 2.deldete\n 3.delete_first\n 4.delete_last\n");
for( i = 0; i < MAX_ORDER - 1; i++){
puts("enter_num->");
gets( buf );
sscanf( buf, "%d" , &select_num);
if(select_num == 0) {
puts("enter is number");
return -1;
} else {
switch (select_num) {
case 1:
INSERT(book_list, insert_num++);
break;
case 2:
//delete();
break;
case 3:
//delete_first();
break;
case 4 :
//delete_last();
break;
default:
puts("process error");
}
}
}
return 0;
}
//
この中のINSERT関数のなかで、構造体メンバのtitleに対して
fgets関数で入力したbufの値をセットしようとしたら
エラー: assignment to expression with array type
とでます。
なぜでしょうか?
だれか教えてください。
今、双方向の構造体の確認で、本の管理を行うようなプログラムを作っています。
これが途中まで作成したコードです。
//
#include <stdio.h>
#include <string.h>
#define MAX_ORDER 10
#define buf_size 80
//構造体を定義
struct list{
int book_number;
char title[buf_size];
int *next;
int *back;
};
//構造体に値を登録
void INSERT(struct list *book_list[], int insert_num)
{
//配列の要素数
int num = insert_num;
printf("inputs number is %d!\n", insert_num);
char buf[buf_size];
printf("bookname is enter\n");
fgets( buf, sizeof(buf), stdin);
book_list[num]->title = 1;
printf("%s\n", book_list[num]->title);
}
int main()
{
struct list book_list[20];
int i, insert_num, select_num;
insert_num = 0;
select_num = 0;
char buf[buf_size];
printf("order number is %d\n\n", MAX_ORDER);
puts("order select\n 1.INSERT\n 2.deldete\n 3.delete_first\n 4.delete_last\n");
for( i = 0; i < MAX_ORDER - 1; i++){
puts("enter_num->");
gets( buf );
sscanf( buf, "%d" , &select_num);
if(select_num == 0) {
puts("enter is number");
return -1;
} else {
switch (select_num) {
case 1:
INSERT(book_list, insert_num++);
break;
case 2:
//delete();
break;
case 3:
//delete_first();
break;
case 4 :
//delete_last();
break;
default:
puts("process error");
}
}
}
return 0;
}
//
この中のINSERT関数のなかで、構造体メンバのtitleに対して
fgets関数で入力したbufの値をセットしようとしたら
エラー: assignment to expression with array type
とでます。
なぜでしょうか?
だれか教えてください。