Por que um ponteiro para uma matriz char precisa ser strcpy para atribuir caracteres a sua matriz e a atribuição de aspas duplas não funcionará?
O primeiro exemplo não funciona quando você vai apagar o ponteiro. O programa ou trava quando eu adiciono o terminador nulo ou sem ele eu recebo:
Debug Assertion Failed Expression: _BLOCK_TYPE_IS_VALID(pHead->nBlockUse)
do Visual Studio 2008
//Won't work when deleting pointer:
char *at = new char [3];
at = "tw"; // <-- not sure what's going on here that strcpy does differently
at[2] = '\0'; // <-- causes program to hang
delete at;
//Works fine when deleting pointer:
char *at = new char [3];
strcpy(at,"t");
at[1] = 'w';
at[2] = '\0';
delete at;
Então, o que está acontecendo quando eu uso aspas duplas em vez de strcpy? Ambos vão coutar a string perfeitamente e o debugger não mostra nada diferente.