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