ここに私のコードです。 Cで構造体を使用する方法がわかりません。誰かが私の理由を見てみることができますか?私は通常、Cでコードを書くのではなく、これでポインタを使う必要があるかもしれないと言われました。C構造体の問題
#include <pthread.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
struct Buffer
{
int link;
char message[30];
}buffers[3];
//5 philosopher boxes and one available
int boxArray[6] = {0, -1, -1, -1, -1, -1};
buffers[0].link = 1;
buffers[0].message = "empty";
buffers[1].link = 2;
buffers[1].message = "empty";
buffers[2].link = -1;
buffers[2].message = "empty";
void sendMessage (int philNum, char newMessage)
{
int header;
header = boxArray[0];
boxArray[0] = buffers[header].link;
buffers[header].message = newMessage;
if (boxArray[philNum] == -1)
{
boxArray[philNum] = header;
buffers[header].link = -1;
}
else
{
int i = boxArray[philNum];
int temp;
do
{
temp = buffers[i].link;
if (temp == -1)
{
buffers[i].link = header;
}
else
{
i = buffers[i].link;
}
}while (temp = -1);
}
}
出力。私は、問題はここに
Message.c:17:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
buffers[0].link = 1;
^
Message.c:18:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
buffers[0].message = "empty";
^
Message.c:20:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
buffers[1].link = 2;
^
Message.c:21:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
buffers[1].message = "empty";
^
Message.c:23:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
buffers[2].link = -1;
^
Message.c:24:15: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘.’ token
buffers[2].message = "empty";
^
Message.c: In function ‘sendMessage’:
Message.c:34:28: error: assignment to expression with array type
buffers[header].message = newMessage;
:
はこれを試してみてください。これらの基本的な問題のためにCの本/チュートリアルを探す時間を取ることができるときには、他人に頼るだけでは大したことではありません。 – kaylum
それはひどく役に立たなかった、ありがとう! –
@kaylumのコメントはまさに私が投稿しようとしていたものです。あなたが書いたことを修正して説明する前に、まず言語を学ぶ必要があります。お買い物にお金をかけたくない場合は、無料でCの本があります。 Cはトライ&エラーで学習する言語ではありません。私たちは個人のサイトではありません! – Olaf