포인터 및 구조체와 함께 C에서 몇 가지 문제점이 있습니다. Signal
구조체 2 개와 엔티티 중 하나를 저장하는 포인터 activeSignal
이 있습니다. 자, 내 구조체 printParameters()
에이 "stored"엔티티를 사용하여 내 구조체의 값을 인쇄하고 싶습니다. 불행히도, 내 마이크로 컨트롤러 디스플레이는 내 가치 대신에 일부 상형 문자를 인쇄합니다. 나는 완전히 포인터 연산을보고 있지 않다는 것을 인정해야한다. ...함수에 사용 된 구조체에 대한 포인터
struct SigParameter {
char *name;
int value;
};
struct Signal {
struct SigParameter signalchar;
};
int main(void) {
struct Signal s1;
struct Signal s2;
s1.signalchar.name = "Sinus";
s2.signalchar.name = "Rect";
struct Signal *activeSignal = &s1;
printParameters(activeSignal);
}
void printParameters(struct Signal *s) {
lcdPrintf(0,11,9,"%s", s->signalchar.name);
}
나는 C 전문가는 아니지만 이것이 나에게 맞는 것처럼 보입니다. 's-> signalchar.name'을 간단히''Hello "'로 바꾸면 올바르게 동작합니까? –
잠깐 나에게 유머 감히'printf ("% s", s-> signalchar.name);'시도해보십시오. 코드는 나에게 잘 보입니다. 'name'은 리터럴을 할당하는 경우'const char *'이어야합니다. – Bathsheba
'lcdPrintf'는 정상적으로 작동합니까? 'lcdPrintf (0,11,9, "% s", "Sinus");를 시도 했습니까? 구조체에 세미콜론을 추가하십시오. –