나는 재미있게 C로 스택을 만들려고하는데, 스택을 나타 내기 위해 구조체를 사용하는 아이디어가 떠 올랐다. 그런 다음 push() 및 pop() 작업을위한 구조체에 함수 포인터를 추가합니다."C"가 아닌 "this"포인터
지금까지는 모든 것이 좋았지 만 push() 및 pop() 함수를 구현하기 위해 어떻게 든 이것을 참조해야합니다. 어떻게 할 수 있습니까?
이 내 구조체
struct Stack {
int *data;
int current_size;
int max_size;
int (*push)(int);
int (*pop)();
};
입니다 그리고 당신이 상상할 수 있듯이 예를 들어 여기에 컴파일러는 stack->current_size
같은 것을 기대하는 것처럼 current_size
이 무엇인지 모르고있다,
int push(int val) {
if(current_size == max_size -1)
return 0;
data[current_size] = val;
current_size++;
return 1;
}
을 밀어입니다.
어떻게 든 극복 할 수 있습니까?
스택 구조체의 포인터는 무엇입니까? – Nyan
'stack-> push (10);'와 같이이 타입의 스택을 호출하는 것이 가능한지에 대한 답을 얻으려고 노력하십시오. 자, 대답이 여기에 주어지지 않는다면 저는 그것이 실제로 불가능하다는 것을 꽤 확신 할 수 있습니다. – foo