我是C編程新手, 我有一個帶有char和int指針的結構,我經常修改這個指針,found some reference in online to realloc char *和它的工作正常,但是當我用在裏面的時候同樣的事情結構意味着出現問題,Realloc char *裏面的結構
typedef struct MyStruct
{
int* intPtr;
char* strPtr;
} Mystruct;
內main()
Mystruct *myStructPtr;
myStructPtr = new Mystruct();
myStructPtr->intPtr = new int();
*myStructPtr->intPtr = 10;
myStructPtr->strPtr = (char *)malloc(sizeof("original"));
myStructPtr->strPtr = "original";
printf("String = %s, Address = %u\n", myStructPtr->strPtr, myStructPtr->strPtr);
myStructPtr->strPtr = (char *)realloc(myStructPtr->strPtr, sizeof("modified original"));
myStructPtr->strPtr = "modified original";
printf("String = %s, Address = %u\n", myStructPtr->strPtr, myStructPtr->strPtr);
我發現而重新分配內部指針的char *以下錯誤
這可能是由於堆損壞引起的,這表明它已加載的任何DLL中存在錯誤。
這不是C. C沒有'new'作爲關鍵字。 –
爲什麼你將C和C++混合? 'new'和'malloc'?堅持一個.. – Arash
[The C++ FAQ](https://isocpp.org/wiki/faq/freestore-mgmt#mixing-malloc-and-delete) – Lundin