私はCプログラミングの新人です 私はcharとintポインタを持つ構造体を持っていますが、私はこのポインタを頻繁に変更することにしましたfound some reference in online to realloc char *とそのうまく動作しますが、構造はRealloc char *内部構造
typedef struct MyStruct
{
int* intPtr;
char* strPtr;
} Mystruct;
私はポインタ内のchar *を再割り当て中にエラーが以下の見つけ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);
の内側に、問題が発生した意味
これは、ヒープが破損していることが原因である可能性があります。これは、読み込んだDLLのバグまたはいずれかのバグを示しています。
これはCではありません。Cには 'new'というキーワードはありません。 –
なぜCとC++を混在させるのですか? 'new'と' malloc'の両方!スティックでスティックする.. – Arash
[The C++ FAQ](https://isocpp.org/wiki/faq/freestore-mgmt#mixing-malloc-and-delete) – Lundin