我有一个如下的 struct ,带有一个指向函数"length"的指针,该函数将返回chars成员的长度.
typedef struct pstring_t {
char * chars;
int (* length)();
} PString;
我有一个函数可以返回指针指向PString的字符长度:
int length(PString * self) {
return strlen(self->chars);
}
我有一个函数initializeString(),它返回指向PString的指针:
PString * initializeString() {
PString *str;
str->length = &length;
return str;
}
It is clear that I am doing something very wrong with my pointers here, because the str->length = &length
line causes an EXC_BAD_ACCESS signal in my debugger, as does `return strlen(self->chars). Does anyone have any insights into this problem?
我特别希望initializeString()函数能够返回指向PString的指针,而Length函数能够使用指向PString的指针作为输入.这只是用C语言实现一个基本的面向对象系统的实验,但是我没有很多正面处理指针的经验.谢谢你能给我的任何帮助.