0
我试图用char * c = s - sizeof(unsigned);来检查堆中的值。 但它总是给我留言。我不知道我做了什么错?检查堆中的值
typedef
struct String {
int length;
int capacity;
unsigned check;
char ptr[0];
} String;
char* modelStrrealloc(char* myStruct, int new_capacity){
char* c = myStruct - sizeof(unsigned);
int length = strlen(s);
String *string;
if (c == 0xdeadbeef){
printf("1st if statement");
if (*(c - sizeof(int))< new_capacity){
string = malloc(sizeof(String) + new_capacity + 1);
printf("if statement");
assert(string != 0);
(*string).length = length;
(*string).capacity = new_capacity + 1;
strcpy(string->ptr, myStruct);
(*string).check = "~0xdeadbeef";
modelStrfree(myStruct);
return string->ptr;
}
}
return myStruct;
}
什么是s - 它未在上面的代码段中定义/声明? – 2009-10-27 23:54:15
oops,我做了修改。 这是myStruct – user133466 2009-10-28 00:15:50
你还有'strlen(s)',所以这仍然不是你真正的代码。你真的需要粘贴你正在编译和运行的确切代码 - 当我把我的车带到车库是因为它有问题,它确实是我的车,而不是我在其他地方找到的类似车。 8-) – RichieHindle 2009-10-28 00:29:48