我在使用双指针时遇到问题。我想将字符串分配给 Dinfo.phrase。代码运行良好,直到语句 delete[] newp。执行此语句时,会出现以下错误。
Windows 已在 ...exe 中触发断点,这可能是由于堆损坏,这表明 teststring.exe 或其已加载的任何 DLL 中存在错误。
这是代码
struct dlgbox {
char *temp; };
void test(char **newp){
dlgbox Dinfo;
char *test="test";
Dinfo.temp= NULL;
Dinfo.temp=test;
*newp = Dinfo.temp;
printf("%s \n",*newp);}
int main(){
char *newp=NULL;
test(&newp);
printf("main se ==%s ",newp);
printf("\nstrlen %d ",strlen(newp));
delete[] newp;
_getch();
return 0;}
请帮我!!这是由于指针删除造成的问题吗?在我的特殊情况下如何删除指针?