여기 내 코드입니다. 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에서 구조체를 사용하는 방법을 모른다". 이 기본 이슈에 대한 C 책/튜토리얼을 찾아 볼 시간이있을 때 다른 사람들에게 의존하는 것은 좋지 않습니다. – kaylum
그건 크게 도움이되지 않았다. 고마워! –
@kaylum 님의 댓글은 내가 올리려고 한 바로 그 것입니다. 먼저 다른 사람들이 당신이 쓴 것을 고치고 설명하도록 귀찮게하기 전에 언어를 배워야합니다. 돈을 쓰고 싶지 않다면 C 책이 무료입니다. C는 시행 착오를 통해 배울 수있는 언어가 아니며 우리는 개인 교습 사이트가 아닙니다! – Olaf