char *a() {
char *t = malloc(8);
t[0] = 'a';
t[1] = 'b';
//...
t[7] = 'h';
return t;
}
int main(void) {
char *x = a();
//do something with x
//...
free(x);
return 0;
}
此代码是否有任何潜在的问题,因为内存分配在a()
和已用内存main()
?这是否使用C指针可以防止泄漏内存?
+1即使你错过了从void void()中返回值的问题(我也几乎错过了,并且@Ed击败了我们所有人)。 – 2009-11-06 21:49:08
Ack - 好赶上! – 2009-11-06 21:51:57